Топ контрибуторов
loading
loading
Знаете ли Вы, что

Свои вопросы для тестов можно добавлять на странице с информацией о тесте. При этом для некоторых тестов добавление вопросов закрыто

Лента обновлений
ссылка 19:09:53
Добавлен вопрос в тест C# - Средний уровень
ссылка 19:07:56
Комментарий от AGr:
практический опыт тоже может совсем не помочь, если практико...
ссылка 19:05:42
Комментарий от AGr:
Тест "специфичный". Мне понадобилось несколько попыток, а по...
ссылка 16:49:12
Комментарий от AGr:
Тест устарел. Легаси, не рекомендованный к использованию про...
ссылка 10:19:21
Комментарий от Faradey77777:
Принцип тестирования 2
https://dou.ua/forums/topic/...
Статистика

Тестов: 153, вопросов: 8597. Пройдено: 460066 / 2251430.

Java / Отличие volatile от synchronized

Автор: allocator  к списку      

Вопрос
В чем разница между volatile и synchronized?
Ответ

synchronized имеет два важных момента: это гарантия того, что только один поток выполняет секцию кода в один момент времени (взаимоисключение или mutex), и также гарантия того, что данные, изменённые одним потоком, будут видны всем другим потокам (видимость изменений).

volatile проще, нежели синхронизация и подходит только для контроля доступа к одиночному экземпляру или переменной примитивного типа: int, boolean... Когда переменная объявлена как volatile, любая запись её будет осуществляться прямо в память, минуя кеш. Также как и считываться будет прямо из памяти, а не из всевозможного кеша. Это значит, что все потоки будут "видеть" одно и то же значение переменной одновременно.

Если Вам понравился вопрос, проголосуйте за него

Голосов: 36  loading...
minal2000   kushnarenko   makism   dcba1257908   walera007   archik1223   sss07   vanek797   D_S__   allocator   LonsMan   Ronny147   Javiftest   Otaka   drevlyanin   mishamhoyan   WDM   alex_skn   san   alex1395   nixdorf2003   sadpanda   Ekaterina001   dimaatkaev   javadev75   sanya_sokolov   KateAlex   alex81   matias   greenlight   biger   jacksolovey   Maestro11   silentflame   DarkFeniks   Sebastian