Junior — Middle
რა მეთოდებს ან ინსტრუმენტებს იყენებთ თხილამურების სინქრონიზაციის მართვისა და შეჯიბრის პირობების თავიდან ასაცილებლად?
sobes.tech AI
პასუხი AI-სგან
iOS-də iplaroq sinxronizasiyasını idarə etmək və yarış şəraitlərinin qarşısını almaq üçün aşağıdakı vasitələrdən istifadə edirəm:
- Resurslara girişin idarə olunması üçün serial və paralel növbələrlə GCD (Grand Central Dispatch).
- Eyni vaxtda girişin məhdudlaşdırılması üçün DispatchSemaphore.
- Kritik bölmələri qorumaq üçün NSLock, NSRecursiveLock və digər kilid primitive-ləri.
- @synchronized atributu və ya DispatchQueue vasitəsilə atomik əməliyyatlar və xüsusiyyətlərdən istifadə.
Senkronizasiya üçün serial DispatchQueue istifadə nümunəsi:
let serialQueue = DispatchQueue(label: "com.example.serialQueue")
paylaşılanResurs = 0
serialQueue.async {
paylaşılanResurs += 1
}
serialQueue.async {
print(paylaşılanResurs)
}