В Java, do ReentrantLock.lock() и ReetrantLock.unlock() используют тот же механизм блокировки, что и synchronized()?
Мое предположение: "Нет", но я надеюсь ошибиться.
Пример:
Представьте, что в Thread 1 и Thread 2 есть доступ к:
ReentrantLock lock = new ReentrantLock();
Тема 1:
synchronized (lock) {
// blah
}
Режимы Thread 2:
lock.lock();
try {
// blah
}
finally {
lock.unlock();
}
Предположим, что Thread 1 сначала достигнет своей части, затем Thread 2 до завершения Thread 1: будет ли Thread 2 ждать, пока Thread 1 покинет блок synchronized(), или он продолжит работу и запустится?