首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对非争用锁的synchronized与ReentrantLock

针对非争用锁的synchronized与ReentrantLock
EN

Stack Overflow用户
提问于 2012-07-28 12:59:45
回答 1查看 990关注 0票数 3

对于一个单独的非争用锁获取,ReentrantLock对synchronized的性能如何?

假设你打算实现一个两个锁的类(这意味着你需要两个不同的锁,而synchronized是不够的,就像在LinkedBlockingQueue中一样),其中put和take锁的获取是由thread1和Thread2 (always)完成的,这意味着锁是无争用的,线程局部性的原则出现了,ReentrantLock对synchronized的性能如何(这将需要队列的完全锁定)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-28 14:02:24

大多数情况下,当3个或更多线程竞争时,ReentrantLock会获胜,但这取决于硬件、操作系统、JVM版本及其选项。

Martin Thompson在他的博客中发表了关于ReentrantLock与同步块和偏向锁定的研究结果:

http://mechanical-sympathy.blogspot.com/2011/11/java-lock-implementations.html

http://mechanical-sympathy.blogspot.com/2011/11/biased-locking-osr-and-benchmarking-fun.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11698418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档