Что такое атомарная операция

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

Ответ

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

Пример с AtomicInteger:

val atomicCounter = AtomicInteger(0)

// Атомарное инкрементирование
atomicCounter.incrementAndGet()

Ключевые особенности:

  • Гарантирует целостность данных при многопоточном доступе
  • Исключает race condition
  • Реализуется через низкоуровневые механизмы (CAS, volatile)

Используется в конкурентных коллекциях (ConcurrentHashMap), счетчиках, флагах. В Java атомарные операции предоставляются классами из пакета java.util.concurrent.atomic.