主题
sync 包简介
1. sync 包作用
提供基本的同步原语,帮助管理并发程序中的共享资源和协作。
2. WaitGroup
用于等待一组 Goroutine 完成。
go
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// 任务代码
}()
wg.Wait() // 阻塞直到所有任务完成
3. Mutex(互斥锁)
用于保护共享变量,防止数据竞争。
go
var mu sync.Mutex
mu.Lock()
// 访问共享资源
mu.Unlock()
4. 其他同步工具
- RWMutex:读写互斥锁
- Once:只执行一次操作
- Cond:条件变量
sync 包是 Go 并发编程中的关键工具,确保数据安全和协作。