Sobes.tech
Junior — Middle

Можете ли објаснити шта подразумева термин Lock у контексту мултитхрединга или синхронизације?

sobes.tech АИ

Одговор од АИ

Zatvor (lock) je mehanizam za sinhronizaciju koji se koristi za upravljanje pristupom zajedničkim resursima u okruženju sa više niti. On garantuje da u jednom trenutku samo jedna nit može izvršiti kritičnu sekciju koda, sprečavajući trke i obezbeđujući integritet podataka.

Na iOS-u se često koriste objekti poput NSLock, DispatchSemaphore ili @synchronized.

Primer korišćenja NSLock:

let lock = NSLock()

func criticalSection() {
    lock.lock()
    // kod koji treba da se izvrši samo od strane jedne niti
    lock.unlock()
}

Bez zaključavanja, više niti bi moglo istovremeno menjati podatke, što dovodi do grešaka.