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.