volatile гарантирует видимость изменений переменной для всех потоков.
volatile переменную, другие потоки гарантированно увидят это изменение. Без volatile изменения могут оставаться в кеше потока, не синхронизируясь с основной памятью.volatile не гарантирует атомарность операций. Операции типа инкремента (i++) не являются атомарными и могут привести к состоянию гонки даже с volatile.Используется для:
Пример использования с флагом:
java