Встречается на собеседованиях • сегодня

Как работает Volatile

Ключевое слово volatile в Java гарантирует видимость изменений переменной для всех потоков. Когда переменная объявлена как volatile, чтение всегда будет происходить из основной памяти, а запись — сразу в основную память, минуя кэш процессора. Это предотвращает проблемы с кэшированием и переупорядочиванием операций.

Пример:

java
public class VolatileExample {
    private volatile boolean flag = false;

    public void toggleFlag() {
        flag = !flag;
    }

    public void doWork() {
        while (!flag) {
            // Ждём изменения флага
        }
        System.out.println("Flag changed!");
    }
}

Без volatile поток doWork() может не увидеть изменения flag из-за кэширования. С volatile изменения сразу видны всем потокам. Однако volatile не гарантирует атомарность составных операций (например, инкремента). Для атомарных операций используйте Atomic-классы или синхронизацию.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы