关于互斥锁和读写锁的问题

关于互斥锁和读写锁的问题

老师,您好。

其实互斥锁的功能类似于写锁的功能

1、其实有一个读写锁就可以了,为什么还需要一个互斥锁?

2、互斥锁和写锁的性能笔记,哪个会比较优呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
  1. 互斥锁是任何一个goroutine进来都要加锁或者等待, 读写锁你可以控制哪些之间是不互斥的,但是你要注意读写锁如果一个goroutine要写数据,其他的所有的读锁都得等待,这个时候就等同于互斥锁,这是有不同的应用场景的。

  2. 读写锁性能高于互斥锁,但是你所有的goroutine都拿写锁不拿读锁,这个时候就退化成互斥锁了


  • qq_森_12 提问者 #1

    多个goroutine是不是只能添加一个互斥锁吧?不然互相等待会造成死锁?

    2021-10-21 11:38:19
  • bobby 回复 提问者 qq_森_12 #2

    如果锁这么脆弱还能叫锁啊, 只要是锁,不论是互斥锁还是读写锁,多个goroutine都不会随便死锁, 死锁是指互相等待对方才有有,一般是每个goroutine都拿到一把锁之后等待另一把锁的情况下容易出现,大家goroutine都拿同一把锁不会出现死锁

    2021-10-21 13:38:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师