【问题标题】:Is lock returned by ReentrantReadWriteLock equivalent to it's read and write locks?ReentrantReadWriteLock 返回的锁是否等同于它的读写锁?
【发布时间】:2010-04-25 13:27:51
【问题描述】:

我一直在寻找这个问题的答案,但没有快乐。在 Java 中,使用 ReentrantReadWriteLock 创建的锁是否等同于获取 readLock.lock() 和 writeLock.lock() 返回的读写锁?换句话说,我是否可以期望通过在 ReentrantReadWriteLock 上同步来请求和持有与 ReentrantReadWriteLock 关联的读写锁?

我的直觉说“不”,因为任何对象都可以用于同步。我认为 ReentrantReadWriteLock 不会有特殊行为。但是,特殊行为是我可能不知道的极端情况。

谢谢, 托德

【问题讨论】:

  • 通过源码查看ReentrantReadWriteLock的内在锁似乎对readLockwriteLock没有任何影响。所以你的直觉似乎是对的。
  • @binil 如果您发表评论作为答案,我会选择它。虽然另一个发布的答案在技术上是正确的,但它并没有直接回答我的问题。谢谢。

标签: java concurrency locking


【解决方案1】:

java.util.concurrent.locks 和 Java 语言中的锁支持是完全独立的机制。

一些静态分析工具会标记尝试在Lock 对象上使用synchronized

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    相关资源
    最近更新 更多