Go 语言圣经 9.2 sync.Mutex互斥锁 9.3 sync.RWMutex读写锁

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语言基础

代码仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值