Мне было интересно, если в Java я получаю какое-то нечетное поведение, если я дважды синхронизируюсь на одном и том же объекте?
Сценарий выглядит следующим образом
pulbic class SillyClassName {
object moo;
...
public void method1(){
synchronized(moo)
{
....
method2();
....
}
}
public void method2(){
synchronized(moo)
{
doStuff();
}
}
}
Оба метода используют объект и синхронизируются на нем. Будет ли второй метод, вызываемый первым методом, останавливаться, поскольку он заблокирован?
Я так не думаю, потому что это тот же поток, но я не уверен в каких-либо других нечетных результатах, которые могут произойти.