В синхронизированном блоке вы можете повторно получить блокировку, которой вы уже владеете. Поставщик блокировки (это) будет получен первым потоком, который введет doSomething (). Затем в методе doSomethingElse () он повторно получит его.
причина сделать это? Ну, нет ничего, что могло бы сказать, что нет никакого другого потока, вводящего doSomethingElse откуда-то еще. Это предотвратит выполнение кода любым кодом в doSomething (), пока поток в doSomethingElse () не освободит this.
Редактировать Кстати, он, конечно, может блокировать ... и блокирует выполнение любого потока, которому не принадлежит объект синхронизации Однако это не будет (как отправлено) тупик.