参考答案
结论:Go协程间通信主要两种方法:使用通道(channel)和共享内存加同步原语。核心要点:1.Channel是Go推荐方式,遵循“通过通信共享内存”,分为无缓冲和有缓冲,可传递数据或同步信号;2.共享内存方式需配合sync.Mutex、sync.RWMutex或atomic原子操作来保护临界区,避免竞态。原理:channel底层由环形队列和锁实现,发送接收阻塞同步;共享内存直接读写变量但需加锁。示例:ch:=make(chan int); go func(){ch<-1}(); <-ch。对比:channel更安全易用,共享内存性能高但易出错。在面试中应根据场景选择,高并发数据流用channel,低延迟共享状态用锁。