用途:审查与实现 Go 并发安全代码,防止 goroutine 泄漏、数据竞态和死锁。
主要能力:提供 goroutine 生命周期管理、channel 模式、互斥锁与原子操作、context 传播、避免可变全局变量等规则,并附按需加载的参考文件 references/channels.md 与 references/mutex-and-atomics.md。
使用方式:先选择模式——实现(按规则写新并发代码)、diff 审查(默认,检查改动,重点关注新增 go 语句与共享状态)、泄漏/竞态排查(从审计与竞态检测入手定位问题)。大型代码库审计建议分四轮独立进行:goroutine 生命周期(grep -rn "go func|go [a-zA-Z]" --include="*.go")、共享状态、channel 拓扑、context 传播;结论需标注 file.go:line,最后运行 go test -race ./...。
关键规则:每个 goroutine 必须有终止路径,可用 errgroup 协调;长任务需响应 context;由调用方启动 goroutine。channel 大小只用无缓冲或 1,信号 channel 用 struct{} 并 close 广播,生产者负责关闭。sync.Mutex 零值可用,禁止 *sync.Mutex 字段与按值复制,临界区最小化,计数用 atomic,懒初始化用 sync.Once。context 作为首参且阻塞操作需 select ctx.Done()。
限制:资料未提供安装命令、平台支持、收费与效果数据;参考文件仅在正文不足时读取。