Microtask
- Dart kursu
- İleri seviye
- Ders 8/83
- 5 dk
Microtask ve macrotask queue'yu öğrenirsin.
Microtask kuyruğu
Microtask, event loop'un her turında event'ten önce işlenen küçük görevdir. Future.microtask ya da scheduleMicrotask ile zamanlanır.
Kullanım: küçük, senkron, acil işler. Örneğin bir akış dinleyicisine bildirim göndermek. Uzun süren işler microtask'e konmaz; loop'u bloklar.
Örnek: await Future.microtask(() => print('önce')). Burada microtask işlenip tamamlandıktan sonra akış devam eder.
await Future.microtask
Future.microtask(fn), fn'i microtask olarak zamanlar ve tamamlandığında sonuçla çözülen bir Future döndürür. await ile beklersen microtask işlenene kadar akış askıya alınır.
Bu, küçük senkron işleri event'ten önce sıkıştırmak için kullanışlıdır. Örnek: await Future.microtask(() => 42) — microtask 42 üretir, await 42'yi verir.
Dikkat: microtask içine uzun hesap koymak event loop'u bloklar; I/O ve ağır CPU'dan kaçının.
Uygulama Microtask sırasını gözle
main'i async yap. print('a') ekle. await Future.microtask(() => print('b')) ekle. En son print('c') ekle.
Başlangıç kodu
void main() {
// async yap; 'a' yazdır; microtask ile 'b' yazdır; 'c' yazdır
}Örnek çözüm
void main() async {
print('a');
await Future.microtask(() => print('b'));
print('c');
}Beklenen çıktı
a b c
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Microtask zamanla
await Future.____(() => print('önce'));
await Future.microtask(() => print('önce'));
Açıklama: Future.microtask bir mikro görev zamanlar.
2 Microtask ne zaman işlenir?
- Sadece await ile
- Event'ten sonra, sonraki turda
- Yalnızca Isolate içinde
- Event'ten önce, aynı turda Doğru cevap
Açıklama: microtask'ler aynı turda event'ten önce işlenir.
3 Microtask parçaları
| Kavram | Anlamı |
|---|---|
Future.microtask |
Microtask kurucu |
scheduleMicrotask |
Top-level fonksiyon |
microtask queue |
Öncelikli kuyruk |
await |
Bekleme |