Я видел это в одном из информационных бюллетеней Хайнца Кабуца Java Specialist и, хотя остальные (и действительно, все )статьи д-ра Кабуца хорошо -объяснены и детализированы, он, казалось, умалчивал о том, что делает этот код, или, что более важно, каково его значение:
public class SomeObject {
private Object lock1;
private Object lock2;
public void doSomething() {
synchronized(lock1) {
synchronized(lock2) {
//...
}
}
}
}
Каковы последствия вложения synchronized
блоков? Как это влияет на разные потоки, пытающиеся doSomething()
?