Middle
რა მოხდება, თუ სერიული რიგში ასინქრონული დავალება დაიწყეთ?
sobes.tech AI
პასუხი AI-სგან
Tapşırıq yerinə yetiriləcək, lakin dərhal deyil. O, növbəyə qoyulacaq və bu növbədəki digər tapşırıqlarla ardıcıllıqla yerinə yetiriləcək, onların tamamlanmasına görə. Tapşırıq asinxron olsa da, onun icrası tək ipli ardıcıllıq növü ilə məhdudlaşdırılır.
// Nümunə
let serialQueue = DispatchQueue(label: "com.example.serialqueue")
serialQueue.async {
// Bu tapşırıq asinxron şəkildə yerinə yetirilir,
// lakin əvvəlki tapşırıqların tamamlanmasını gözləyir
print("Tapşırıq 1 tamamlandı")
}
serialQueue.async {
// Bu tapşırıq asinxron şəkildə yerinə yetirilir,
// lakin tapşırıq 1-in tamamlanmasını gözləyir
print("Tapşırıq 2 tamamlandı")
}
Əsas nöqtələr:
- Sıralama: Tapşırıqlar əlavə olunduqları ardıcıllıqla yerinə yetirilir.
- Yalnız bir iplik: Hər zaman, bu növbədə yalnız bir tapşırıq yerinə yetirilir.
- Çağıranı bloklamır:
asyncmetodunun çağırılması, onu çağıran ipliyi bloklamır. Tapşırıq növbəyə qoyulur və idarəetmə geri qaytarılır. - Tapşırıq daxilində asinxronluq: Əgər tapşırıq daxilində asinxron əməliyyatlar (məsələn, şəbəkə sorğusu) varsa, bu daxili əməliyyatlar digər ipliklərdə yerinə yetirilə bilər, lakin ardıcıl növbədəki tapşırıq, öz tapşırığı tamamlanmadan (növbə baxımından) növbətiyə keçməyəcək.