Java :Вложенные блоки синхронизации

Я видел это в одном из информационных бюллетеней Хайнца Кабуца Java Specialist и, хотя остальные (и действительно, все )статьи д-ра Кабуца хорошо -объяснены и детализированы, он, казалось, умалчивал о том, что делает этот код, или, что более важно, каково его значение:

public class SomeObject {
    private Object lock1;
    private Object lock2;

    public void doSomething() {
        synchronized(lock1) {
            synchronized(lock2) {
                //...
            }
        }
    }
}

Каковы последствия вложения synchronizedблоков? Как это влияет на разные потоки, пытающиеся doSomething()?

21
задан zb226 9 August 2017 в 23:27
поделиться