参考答案
结论:Go同步原语主要包括sync包、channel及atomic包。核心要点:1) sync.Mutex/RWMutex提供互斥与读写锁;2) sync.WaitGroup等待一组goroutine结束;3) sync.Once保证仅执行一次;4) sync.Cond条件变量用于goroutine间等待通知;5) channel语言级通道可通过收发实现同步;6) sync/atomic提供原子操作如Add、Load。原理:Mutex基于自旋与休眠混合锁;WaitGroup内部计数器;channel运行时调度实现阻塞唤醒;atomic调用CPU原子指令。示例:var mu sync.Mutex; mu.Lock()保护临界区。