sync 包简介

1. sync 包作用

提供基本的同步原语,帮助管理并发程序中的共享资源和协作。

2. WaitGroup

用于等待一组 Goroutine 完成。

var wg sync.WaitGroup

wg.Add(1)
go func() {
    defer wg.Done()
    // 任务代码
}()
wg.Wait()  // 阻塞直到所有任务完成

`

3. Mutex(互斥锁)

用于保护共享变量,防止数据竞争。

var mu sync.Mutex
mu.Lock()
// 访问共享资源
mu.Unlock()

4. 其他同步工具

  • RWMutex:读写互斥锁
  • Once:只执行一次操作
  • Cond:条件变量

sync 包是 Go 并发编程中的关键工具,确保数据安全和协作。