为何非公平锁比公平锁效率高?

2017-12-01 11:54:51 +08:00
 kenduffy

没懂逻辑

只是后来的线程能抢占锁而已

怎么效率就高了?

4372 次点击
所在节点    问与答
6 条回复
sbw
2017-12-01 12:24:51 +08:00
逻辑简单
SoloCompany
2017-12-01 13:04:17 +08:00
这不是显然的吗
现实中经济纠纷是私了效率高还是打官司效率高?
xiaxiaocao
2017-12-01 13:31:55 +08:00
公平锁要维护一个队列,后来的线程要加锁,即使锁空闲,也要先检查有没有其他线程在 wait,如果有自己要挂起,加到队列后面,然后唤醒队列最前面的线程。这种情况下相比较非公平锁多了一次挂起和唤醒
kenduffy
2017-12-01 19:25:33 +08:00
@xiaxiaocao "然后唤醒队列最前面的线程"
为何要唤醒最前面的线程?这个有啥意义?
难道不是获得锁的正在执行的线程结束任务,释放锁的时候去唤醒最前面的线程么?
lengyihan
2017-12-01 22:52:28 +08:00
@SoloCompany 正解。
lengyihan
2017-12-01 22:53:21 +08:00
@SoloCompany 就跟上床一样,强奸肯定比谈恋爱快啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/411069

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX