SuperAPI AI 工具集

golang-concurrency

编程与开发

查看项目

更新于 10-15 22:13

技能介绍

用途:在 Go 中实现并发时提供规范指导,覆盖 goroutine、channel 与 context 的使用场景。

主要能力与原则:

  • 通过通信共享内存,优先用 channel 而非共享内存;
  • 始终传递 ctx 以管理取消与超时;
  • 不允许启动未知退出路径的 goroutine,防止泄漏;
  • 测试始终使用 go test -race 检测竞态。

实现流程:

  1. 选择原语:数据传递用 channel,简单状态保护用 sync.Mutex,带错误处理的并行任务用 errgroup;
  2. 传递 context:涉及 I/O 或长任务的 goroutine 必须接受 context.Context;
  3. 定义退出路径:每个 goroutine 需有明确关闭机制(context 取消、channel 关闭或 WaitGroup);
  4. 用 select 处理多 channel 与超时复用;
  5. 在 CI 中运行 go test -race。

反模式:禁止 goroutine 泄漏(须有已知退出路径)、禁止共享全局状态(改用 channel 或同步原语)、禁止裸 goroutine(用 errgroup 或 WaitGroup 管理生命周期)。

限制:资料未提供具体代码示例、安装方式、收费与平台信息;实际用法需结合项目自行实现。