9.2 sync.Mutex互斥锁
知识点
- 1.一个只能为1和0的信号量叫做二元信号量(binary semaphore)
- 2.这种互斥很实用,而且被sync包里的Mutex类型直接支持
- 3.Lock和Unlock的调用是在所有路径中都严格配对的
- 4.一个deferred Unlock即使在临界区发生panic时依然会执行
- 5.defer调用只会比显式地调用Unlock成本高那么一点点,不过却在很大程度上保证了代码的整洁性
9.3 sync.RWMutex读写锁
- 1.一种特殊类型的锁,其允许多个只读操作并行执行,但写操作会完全互斥
- 2.这种锁叫作“多读单写”锁(multiple readers, single writer lock),Go语言提供的这样的锁是sync.RWMutex
- 3.RLock只能在临界区共享变量没有任何写入操作时可用
- 4.RWMutex只有当获得锁的大部分goroutine都是读操作,而锁在竞争条件下,也就是说,goroutine们必须等待才能获取到锁的时候,RWMutex才是最能带来好处的
代码
//等待你们的完善
——不足之处,欢迎补充——
备注
备注
《Go 语言圣经》
- 学习记录所使用的GO版本是1.8
- 学习记录所使用的编译器工具为GoLand
- 学习记录所使用的系统环境为Mac os
- 学习者有一定的C语言基础
代码仓库