Sobes.tech
Junior — Middle

Кандай ыкмаларды же инструменттерди колдонуп жатасыз жиптердин синхрондоштуусун башкаруу жана жарыш шарттарын алдын алуу үчүн?

sobes.tech AI

AIден жооп

iOS'ta 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)
}