面试真题

Go · 中等 · 子虔科技

goroutine怎么做同步控制

中等 Go 🎤 子虔科技
参考答案
结论:goroutine同步控制可用channel、sync原语、context。核心方式:1) sync.WaitGroup:Add/Done/Wait等待一批任务完成;2) channel:通过无缓冲channel阻塞同步或done通知;3) Mutex/RWMutex保护共享变量;4) sync.Once控制单次初始化;5) context.Context传递取消信号,select监听Done;6) atomic计数器。原理:channel运行时调度实现阻塞唤醒;WaitGroup计数器归零唤醒;context树形取消。示例:wg.Add(1); go func(){ defer wg.Done() }(); wg.Wait()。
题目整理自公开面经,答案由校招宝自研生成,仅供参考