Junior — Middle
Можете ли да обясните какво се разбира под термина Lock в контекста на многозадачността или синхронизацията?
sobes.tech AI
Отговор от AI
Заслон (lock) е механизъм за синхронизация, който се използва за управление на достъпа до споделени ресурси в среда с множество нишки. Той гарантира, че в даден момент само една нишка може да изпълнява критичната секция на кода, предотвратявайки състезателни условия и осигурявайки цялостността на данните.
В iOS често се използват обекти като NSLock, DispatchSemaphore или @synchronized.
Пример за използване на NSLock:
let lock = NSLock()
func criticalSection() {
lock.lock()
// код, който трябва да се изпълнява само от една нишка
lock.unlock()
}
Без блокировка няколко нишки биха могли едновременно да променят данните, което води до грешки.