Автор Дима Андриянов задал вопрос в разделе Другие языки и технологии
Java. Объясните особенности работы synchronized. и получил лучший ответ
Ответ от Давид Трубицкой[гуру]
1) synchronized void myMethod() { код метода }
2) void myMethod() {synchronized(this){ код метода } }
Это одно и то же. Что тут может быть непонятно?
А это не то же самое:
void myMethod() { какой-то код ; synchronized(this){ какой-то код } какой-то код }
Отличие будет (точнее, может быть) если выполняется несколько потоков. Если один поток, синхронизация вообще не нужна.
3) synchronized(this){ код } - выполнение кода в скобках не может быть прервано другим synchronized-потоком, если не вызван wait();
4) { код1 ; synchronized(this){ код2 } ; код3 ; synchronized(this){ код4 } код5 } - код 1,3,5 не синхронирован
Дима Андриянов
(229)
Это просто пример.
в переводчике забей
Какие команды программирование в java сущестуют.
abstract
continue
for
new
switch
assert
default
goto*
подробнее...