首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReadWriteLock vs StampedLock

ReadWriteLock vs StampedLock
EN

Stack Overflow用户
提问于 2015-03-08 01:46:10
回答 2查看 3.8K关注 0票数 6

我一直在使用ReadWriteLock来实现/维护一个锁定习惯用法。

自从JDK8 StampedLock被引入以来。正如RWLocks以其缓慢和糟糕的性能而闻名,StampedLock看起来像是另一种选择(它们不是可重入的,所以快得多)。

然而,除了性能之外,在我看来,StampedLock的维护和使用要困难得多,也更复杂--例如,线程现在可能会死锁--所以应该采取相应的行动。

与RWLock相比,StampedLock有哪些优势?

EN

回答 2

Stack Overflow用户

发布于 2015-03-08 02:40:36

这个article详细解释了其中的区别。

ReentrantReadWriteLock

有很多缺点:它饱受饥饿之苦。您无法将读锁定升级为写锁定。没有对乐观读取的支持。“了解内情”的程序员大多避免使用它们。

Doug Lea的新Java8 StampedLock解决了所有这些缺点。通过一些巧妙的代码习惯用法,我们还可以获得更好的性能。

票数 7
EN

Stack Overflow用户

发布于 2015-03-15 21:37:33

嗯,是的,ReentrantReadWriteLock在5.0中有问题(与传统的同步块相比),但他们在Java6.0中解决了这个问题。

因此,如果你们在生产中使用Java6,就可以放心地使用lock API。

性能智慧型锁&传统的同步给你带来了同样的好处。

lock API的好处是它使用CAS/非阻塞,所以它永远不会死锁,除非您忘记在finally块中解锁它。

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

https://stackoverflow.com/questions/28918004

复制
相关文章

相似问题

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