SuperAPI AI 工具集

go-concurrency

写作与研究

查看项目

更新于 10-15 22:12

技能介绍

用途:该技能面向 hegel-go 代码库,用于在编写或审查涉及 goroutine、channel、mutex、共享状态的代码时提供并发模式与常见陷阱的指导。资料指出该代码库通过 channel 在共享子进程上多路复用并发属性测试,并发缺陷较为隐蔽,且竞态检测器只能发现约一半的真实并发问题。

主要能力:围绕“明确所有权”这一核心原则展开。可变状态必须归属清晰:由单个 goroutine 独占(需注释说明)、由 mutex 保护(读写都需持锁)、由 channel 中介(具备 happens-before 保证),或在初始化后不可变(最好用 sync.Once)。若无法立即说出某字段的归属,即视为缺陷。资料还给出该代码库的并发架构要点:每个连接一个 readLoop goroutine 负责读 socket,通过非阻塞 select 分发到各 channel 收件箱;writerMu 串行化 socket 写入;hegelSession.mu 保护子进程生命周期;processExited channel 作为 happens-before 屏障。

使用方式:资料未提供安装命令或调用步骤,暂未提供。内容以审查清单和参考文档形式组织,提及 references/architecture.md 与 references/testing.md。

适用场景与限制:适用于审查懒初始化、仅用于诊断的共享状态读取、闭包捕获可变引用、并行测试中的进程级全局资源、文件 I/O 与 Close 竞态、多就绪 case 的 select、goroutine 泄漏以及跨进程并发等问题。限制在于资料未说明具体安装、运行命令或平台支持,相关事实暂未提供。