用途:该技能面向 Go 并发编程,帮助使用 goroutine、channel 和同步原语构建并发应用,适用于并发服务器、worker、生产者-消费者、数据流并发处理、多路 I/O、超时取消、多 goroutine 协调与 fan-out/fan-in 管道等场景。
主要能力:讲解 goroutine 的创建(含匿名函数与带参数);channel 的无缓冲、缓冲、方向(chan<-、<-chan)、关闭与 range 遍历;select 多路复用、default 非阻塞与 time.After 超时;worker pool 模式;sync.WaitGroup 等待、sync.Mutex 保护共享状态、sync.RWMutex 读写锁、sync.Once 单次初始化;context 的 WithCancel、WithTimeout、WithValue 取消与传值;errgroup 并发错误处理;fan-out/fan-in 生成、平方与合并管道。
使用方式:资料以 Go 代码示例展示各模式写法,例如 go sayHello()、ch := make(chan int)、close(ch)、wg.Add(1)/wg.Done()/wg.Wait()、mu.Lock()/Unlock()、once.Do(...)、context.WithCancel/WithTimeout、errgroup.WithContext 与 g.Go/g.Wait。errgroup 需引入 golang.org/x/sync/errgroup。
限制与注意:资料未提供安装命令、收费、平台或效果信息。常见陷阱包括 goroutine 泄漏、竞态、死锁、向已关闭 channel 发送导致 panic、未检查关闭状态、滥用 mutex、创建过多 goroutine、忘记 WaitGroup.Done()、循环变量捕获问题以及未处理 context 取消。最佳实践建议用 channel 通信、用 mutex 保护状态,仅由发送方关闭 channel,传递 context 处理取消与截止时间,谨慎使用缓冲 channel,并记录 goroutine 生命周期。