SuperAPI AI 工具集

go-concurrency

写作与研究

查看项目

更新于 10-16 05:48

技能介绍

用途:在编写或审查 Go 并发代码时提供指导,涵盖 goroutine、channel、errgroup、context 取消以及 goroutine 泄漏问题,面向 Go 1.27。

主要能力:讲解 goroutine 与 channel 的轻量并发和类型化通信;errgroup 的并行、错误聚合与 context 取消;context 作为首参数严格传递取消与截止时间;WaitGroup 与 channel 的取舍;用 -race 检测数据竞争;以及 1.27 正式提供的 goroutineleak profile(pprof.Lookup("goroutineleak") 或 /debug/pprof/goroutineleak,无需 GOEXPERIMENT)。

使用方式:资料要求先并行启动 3 个 agent(explore-codebase、research-expert、mcp__context7__query-docs)分别梳理现有用法、核对 errgroup/context 文档与签名;实现后用 sniper 校验,并运行 go test -race ./...。参考文档包括 goroutines-channels.md、errgroup.md、context-propagation.md、goroutine-leaks.md,模板有 errgroup-patterns.md、worker-pool.md。

关键规则:context.Context 必须是首参数且命名为 ctx,不得存入结构体;每个启动的 goroutine 都必须能退出;有错误的扇出优先用 errgroup;无缓冲 channel 加提前返回会导致发送方永久阻塞而泄漏,应加缓冲或排空;测试必须带 -race。

适用场景:有界并行抓取、worker pool、可取消流水线等。限制:不适用于顺序式惯用法;具体安装命令与价格资料未提供。