Junior — Middle
Qaysi holatlarda NSLock niqobini ishlatish tavsiya etiladi?
sobes.tech AI
AIdan javob
iOS-da ümumi resurslara girişdə qarşılıqlı istisna təmin etmək və yarış vəziyyətlərinin qarşısını almaq üçün NSLock istifadə etmək tövsiyə olunur. Bu, xüsusən faydalıdır:
- Kritiski kod bölməsini bloklamaq lazımdır ki, yalnız bir axın onu eyni zamanda icra edə bilsin.
- Sadə və açıq bloklama tələb olunur və tryLock ilə cəhd etmək imkanı verilir.
- Timeout ilə metodlardan istifadə edərək deadlock-ları qarşısını almaq lazımdır.
NSLock istifadə nümunəsi:
let lock = NSLock()
func criticalSection() {
lock.lock()
// Yalnız bir axın tərəfindən icra olunmalı kod
lock.unlock()
}
NSLock aşağı səviyyəli kilidləmə üçün uyğundur və mürəkkəb şərtlər olmadan istifadə edilir, lakin daha mürəkkəb ssenarilər üçün GCD və ya semaforlar kimi digər sinxronizasiya mexanizmlərini nəzərdən keçirmək məsləhətdir.