Go-并发控制
一、数据安全性控制(data race)
- 互斥锁 sync.Mutex
- 读写锁 sync.RWMutex
- 原子操作sync/atomic
二、并发gorutine行为控制
- sync.WaitGroup(等待所有gorutine全部结束)
- channel(可以用有缓冲队列控制gorutine的数量,可以用channel+select 实现gorutine间的消息通知)
- Context(web场景中,树状的调用结构下,各gotutine间消息同步(退出、超时等),父context通知所有子context)