Я относительно новичок в параллелизме в Java (еще не прочитал JCIP, но он в моем списке!), И у меня есть вопрос относительно поведения блокировки.В частности, блокирует ли Java ссылку на объект или на сам объект?
Пример кода (не sscce, потому что я не знаю, как продемонстрировать такое поведение на практике):
static final Object lockA = new Object();
public void method1() {
synchronized(lockA) {
// do stuff here
}
}
public void method2() {
Object lockB = lockA;
synchronized(lockB) {
// do stuff
}
}
Если другой поток выполняет method1()
(и поэтому имеет блокировку на lockA
), будет ли разрешено выполнение method2()
?
Спасибо!