CodeBlanks Logo Icon CodeBlanks

Microtask

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

main.dart
void main() {
  // async yap; 'a' yazdır; microtask ile 'b' yazdır; 'c' yazdır
}

Örnek çözüm

main.dart
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

Soru
await Future.____(() => print('önce'));
Cevap
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

İleri seviye bölümündeki tüm dersler