- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个(简化的)场景:
@Test
public void testSameThread() throws InterruptedException {
ReentrantReadWriteLock rwlock = new ReentrantReadWriteLock();
rwlock.readLock().lock();
{
if (rwlock.writeLock().tryLock(50, TimeUnit.MILLISECONDS)) {
// long-running op
Thread.sleep(100);
rwlock.writeLock().unlock();
} else {
fail();
}
}
rwlock.readLock().unlock();
}
首先,我获取读锁,然后在同一个线程上尝试获取写锁。我的假设是,由于我在同一个线程上,因此应该获取写锁。
首先,我的假设有什么问题?那么,可以使用什么模式(标准Java锁定机制)来允许同一线程任意嵌套的读/写锁?
最佳答案
你的假设没有任何问题。事实上,这不是一个假设,而是一个有据可查的事实。来自ReentrantReadWriteLock.WriteLock.lock()
:
Acquires the write lock if neither the read nor write lock are held by another thread
如果在同一个线程上多次获取时发生阻塞,则不会是可重入的。
``事实上,毕竟没有那么详细的记录,请参阅评论部分
关于java - 同一线程上的可重入ReadWriteLock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974697/
嗨,我已经阅读了 Java 中的 ReadWriteLock,但我不确定我是否掌握了它的重入部分。这是两个仅使用一个主线程来显示重入的简短代码示例 public class Locks { p
我在使用 NotifyIcons 时发现了一个重入问题。重现它真的很容易,只需在表单上放置一个 NotiftIcon,点击事件应该如下所示: private bool reentrancyDetect
我正在尝试使用 SQLite 的新 C 接口(interface)预更新 Hook : https://www.sqlite.org/c3ref/preupdate_count.html 现在回答我的
来自阅读here我发现 Actor 是可重入的,并且我希望以下情况成立:如果我有单一类型的转换 ThespianType 但有三个特定的 Actor ThespianType (T1、T2 和 T3)
有人可以向我解释一下 BlockReentrancy 的目的是什么吗?方法在ObservableCollection ? MSDN显示以下内容作为示例: //The typical usage is
我是一名优秀的程序员,十分优秀!