【问题标题】:What is the difference between ReentrantLock vs stampedlock? Which one to prefer?ReentrantLock 与 stampedlock 有什么区别?更喜欢哪一个?
【发布时间】:2016-12-07 12:31:24
【问题描述】:

在 ReentrantLock 和 StampedLock 之间进行选择的用例应该是什么? 例如,如果我有 10 个 Readers 和 10 个 Writers,应该选择哪个锁? 如果我有 20 位读者和 1 位作者,该选择哪一个?

【问题讨论】:

  • @Thilo 这个问题没有回答我与读者和作家有关的问题。为什么它被否决了?
  • 我不是想在这里说明一点。我所说的只是在您发布问题之前先尝试一会儿。请阅读 api 文档。
  • 就像我说的那样,我不想在这里说明一点。如果可以的话,我会继续删除反对票。
  • 文档很详细,所以你真的应该至少指出文档的哪一部分不清楚

标签: java concurrency java-8 locking reentrantlock


【解决方案1】:

ReentrantLock 正如它的名字和javadocs 所说,是可重入的。 StampedLock 不是。

StampedLock 是一个低级构建块,具有一些脆弱的行为以及与 java 内存模型的复杂交互。应该避免使用它,除非您了解它的所有属性并分析代码以确定某些东西实际上是锁定的瓶颈。

【讨论】:

    猜你喜欢
    • 2020-09-02
    • 2017-04-28
    • 2021-08-06
    • 2023-03-05
    • 2017-10-01
    • 2013-03-25
    • 2010-09-11
    • 1970-01-01
    • 2011-03-20
    相关资源
    最近更新 更多