Работал ли с Volatile

«Работал ли с Volatile» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. volatile в Java используется для объявления переменной, которая может быть изменена из разных потоков. Гарантирует видимость изменений между потоками, но не обеспечивает атомарность операций.

Пример:

private volatile boolean isRunning = true;

void stop() {
    isRunning = false;
}

void doWork() {
    while (isRunning) {
        // выполнение работы
    }
}

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