Junior — Middle
Può spiegare cosa si intende con il termine Lock nel contesto del multithreading o della sincronizzazione?
sobes.tech AI
Risposta dell'AI
Lock (blocco) è un meccanismo di sincronizzazione utilizzato per gestire l'accesso alle risorse condivise in un ambiente multithread. Garantisce che in un dato momento solo un thread possa eseguire la sezione critica del codice, prevenendo condizioni di race e assicurando l'integrità dei dati.
Su iOS, si usano spesso oggetti come NSLock, DispatchSemaphore o @synchronized.
Esempio di utilizzo di NSLock:
let lock = NSLock()
func criticalSection() {
lock.lock()
// codice che deve essere eseguito da un solo thread
lock.unlock()
}
Senza blocco, più thread potrebbero modificare i dati contemporaneamente, portando a errori.