Junior — Middle
Ketma-ketlik navbatda sync usulini chaqirishda blokirovka qanday ishlaydi?
sobes.tech AI
AIdan javob
GCD (Grand Central Dispatch) içində serial növbədə sync metodunu çağırdı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.