Junior — Middle
Puteți explica ce înseamnă termenul Lock în contextul multitreading-ului sau sincronizării?
sobes.tech AI
Răspuns de la AI
Lock (blocare) este un mecanism de sincronizare utilizat pentru a gestiona accesul la resursele partajate într-un mediu multi-thread. Asigură că doar un singur thread poate executa secțiunea critică a codului într-un moment dat, prevenind condițiile de cursă și asigurând integritatea datelor.
Pe iOS, se folosesc adesea obiecte precum NSLock, DispatchSemaphore sau @synchronized.
Exemplu de utilizare a NSLock:
let lock = NSLock()
func criticalSection() {
lock.lock()
// cod care trebuie executat doar de un thread
lock.unlock()
}
Fără blocare, mai mulți thread-uri ar putea modifica datele simultan, ceea ce duce la erori.