Sobes.tech
Back to questions
Junior — Middle
67

Можете объяснить назначение и принцип работы ключевого слова volatile в контексте разработки под Android?

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

Ключевое слово volatile в Java (и, соответственно, в Android-разработке) используется для обеспечения видимости изменений переменной между потоками.

Когда переменная объявлена как volatile, это гарантирует, что:

  • Чтение переменной всегда будет происходить из основной памяти, а не из кэша потока.
  • Запись в переменную сразу становится видимой для других потоков.

Это важно в многопоточном окружении Android, чтобы избежать ситуаций, когда один поток изменил значение, а другой продолжает видеть устаревшее.

Пример:

private volatile boolean isRunning = true;

public void stop() {
    isRunning = false;
}

public void run() {
    while (isRunning) {
        // выполняем работу
    }
}

Без volatile поток, выполняющий run(), может не увидеть изменение isRunning и зациклиться бесконечно.

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