# sync 包简介

URL: https://caijiao.org/go/04-concurrency/06-sync-package
Source: docs/go/04-concurrency/06-sync-package.md
Description: 本节介绍 Go 语言 sync 包的基本内容，包括 WaitGroup 和 Mutex，用于同步和互斥控制。

## 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 并发编程中的关键工具，确保数据安全和协作。
