线程模型与调度
golang中的线程调度是半协同式调度,只有有阻塞的时候,才会进行goroutine的切换,独立于OS的线程调度。
mutex
通过sync.Mutex访问,具有Lock()与Unlock()方法。与一般的锁对象对应起来。
WaitGroup
sync.WaitGroup用于等待多个对象。
wg.Add()用于指定等待多少个对象;
wg.Done()用于宣告对象就位;
wg.Wait()用于等待;
轻量级的原子操作atomic
atomic提供一些原子量的操作。
sync.Once.Do()提供了只做一次的操作。
有疑问加站长微信联系(非本文作者)