Я заметил интересное поведение:
я могу написать
class My {
public My(){
synchronized(this){
// code
}
}
}
но я не могу писать
class My {
public synchronized My(){
// code
}
}
}
Я думал, что обе конструкции одинаково работают с java API.
Просьба уточнить это недоразумение.
В первом случае объект почти создан, необходимо выполнить только тело конструктора.
Но во втором случае не будет никаких объектов для синхронизации.
Невозможно, чтобы две нити создавали один и тот же объект!
Таким образом, синхронизированный модификатор не имеет смысла для конструктора.