面试真题

Go · 简单 · 大华股份

golang有哪些同步原语?

简单 Go 🎤 大华股份
参考答案
结论: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()保护临界区。
题目整理自公开面经,答案由校招宝自研生成,仅供参考