Tag: 重入

将synchronized()与ReentrantLock.lock()混合

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