将 synced() 与 ReentrantLock.lock() 混合
2022-09-03 06:01:39
在 Java 中,执行并使用与 ? 相同的锁定机制。ReentrantLock.lock()
ReetrantLock.unlock()
synchronized()
我的猜测是“不”,但我希望是错的。
例:
假设线程 1 和线程 2 都可以访问:
ReentrantLock lock = new ReentrantLock();
线程 1 运行:
synchronized (lock) {
// blah
}
线程 2 运行:
lock.lock();
try {
// blah
}
finally {
lock.unlock();
}
假设线程 1 首先到达其部分,然后在线程 1 完成之前到达线程 2:线程 2 是等待线程 1 离开块,还是继续运行?synchronized()