Sobes.tech
Junior — Middle

İzləyişli növbədə sync metodunu çağırarkən bloklama necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

GCD (Grand Central Dispatch) içində serial növbəyə sync metodu çağırıldıqda, hazırki axın sync-ə verilmiş tapşırıq tamamlanana qədər bloklanır. Əgər sync eyni axından, yəni bu növbəni idarə edən axından çağırılırsa, deadlock yaranır, çünki növbə, hazırki tapşırıq bitmədən yeni tapşırıq başlada bilməz və hazırki axın yeni tapşırığın tamamlanmasını gözləyir.

Nümunə:

let serialQueue = DispatchQueue(label: "com.nümunə.serial")

serialQueue.sync {
    print("Tapşırıq icra olunur")
}
// Hazırki axın tapşırıq tamamlanana qədər bloklanır

Eyni növbədə, bu növbənin içindəki tapşırıqdan sync çağırmamaq vacibdir ki, qarşılıqlı bloklanma baş verməsin.