> Что такое атомарная операция (iOS, Swift)

Уровень: junior · Роль: mobile · Категория: Технические вопросы

Компании: Doubletapp

Стек: iOS, Swift

> Пример ответа

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

Например, при чтении и записи свойства из разных потоков без атомарности может возникнуть состояние гонки (race condition), когда один поток читает частично записанные данные. В Swift для объявления атомарных свойств обычно используют atomic (но это не поддерживается напрямую в Swift, только в Objective-C). Вместо этого применяются механизмы вроде os_unfair_lock, NSLock, DispatchQueue с барьерными операциями или Atomic из библиотек, таких как Swift Atomics.

Пример с os_unfair_lock:

SWIFT
import os
class AtomicCounter {
private var lock = os_unfair_lock()
private var _value = 0
var value: Int {
os_unfair_lock_lock(&lock)
defer { os_unfair_lock_unlock(&lock) }
return _value
}
func increment() {
os_unfair_lock_lock(&lock)
defer { os_unfair_lock_unlock(&lock) }
_value += 1
}
}

Здесь операции чтения и записи атомарны - они не могут быть прерваны, гарантируя целостность данных в многопоточной среде.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью