Многие используют их. Но все ли понимают, как они связаны с кешем CPU, видимостью изменений в памяти, атомарностью и взаимным исключением?
volatile гарантирует видимость изменений между потоками. synchronized обеспечивает видимость и взаимное исключение: критическую секцию под одним и тем же монитором может выполнять только один поток за раз.Вопрос: два потока выполняют
count++, а переменная count объявлена как volatile. Потокобезопасен ли такой код? Почему?👉 Java Portal
