参考答案
结论:channel典型应用有4种:1.数据传递:主协程与子协程通过chan传值,如go func(){ch<-res}();2.工作池:用任务chan分发,多个worker消费,控制并发,jobs:=make(chan int,10)后启动固定goroutine range jobs;3.超时控制:select{case <-ch: case <-time.After(2*time.Second):}避免永久阻塞;4.广播通知:close(done)后所有监听done的协程立即返回,实现一对多退出信号。这些模式解耦生产消费,简化并发。