Sobes.tech
Назад к вопросам
Junior — Middle
82

Можно ли использовать ключевое слово synchronized непосредственно для защиты отдельной переменной?

Компании, где спрашивали
Т-БанкТ-Банк

Ответ от нейросети

sobes.tech AI

В языке Swift (iOS) ключевое слово synchronized отсутствует, оно есть в Java. Поэтому напрямую использовать synchronized для защиты отдельной переменной нельзя.

Для защиты доступа к переменной в Swift обычно применяют другие механизмы синхронизации, например:

  • Использование DispatchQueue с барьерами или последовательной очередью.
  • Использование NSLock или других объектов блокировок.

Пример защиты переменной с помощью DispatchQueue:

class ThreadSafeCounter {
    private var value = 0
    private let queue = DispatchQueue(label: "com.example.counter")

    func increment() {
        queue.sync {
            value += 1
        }
    }

    func getValue() -> Int {
        return queue.sync { value }
    }
}

Таким образом, в iOS для защиты переменных нужно использовать соответствующие механизмы синхронизации, а не ключевое слово synchronized.