Ответ
volatile в Java указывает, что переменная может быть изменена из разных потоков. Оно гарантирует, что чтение/запись переменной будет происходить напрямую из основной памяти, а не из кэша потока, что обеспечивает видимость изменений между потоками.
Пример:
public class Example {
private volatile boolean flag = false;
public void toggleFlag() {
flag = !flag; // Изменение видно всем потокам
}
}
Важно: volatile не заменяет синхронизацию, если операции неатомарны (например, инкремент). Для сложных операций используйте synchronized или атомарные классы.