volatile гарантирует visibility — чтение volatile-переменной всегда видит последнюю запись любого потока. Без volatile поток может кешировать значение в регистре/кеше и не видеть изменения. Также volatile запрещает reordering инструкций вокруг чтения/записи. НО volatile не обеспечивает атомарность: i++ для volatile всё равно не атомарен (read-modify-write). Используй для простых флагов (volatile boolean running = true), для счётчиков — AtomicInteger.
Что делает volatile в Java?
Middle
379 просмотровAFK Offer AI
Напишите SQL: найти второй по величине salary