CodeBlanks Logo Icon CodeBlanks

Özet - Concurrency

event loop, microtask ve Zone'u birleştirerek bir zamanlayıcı yazarsın.

Özet - Concurrency

Bu grupta Dart'ın eşzamanlılık modelini öğrendik: tek iş parçacıklı event loop, iki kuyruk (event ve microtask), Future zamanlayıcı ve Zone.

Temel ilke: microtask'ler her turda event'ten önce işlenir. Future.value ve Future.microtask microtask olarak, Future.delayed event olarak zamanlanır.

Zone, yürütme ortamı soyutlamasıdır; async hata yakalama ve görev sarma için kullanılır.

Uygulama Özet: microtask + event sırası

main'i async yap. print('başla'); ekle. await Future.microtask(() => print('micro')); ekle. print('bitti'); ekle.

Başlangıç kodu

main.dart
void main() {
  // async yap; 'başla' yazdır; microtask ile 'micro' yazdır; 'bitti' yazdır
}

Örnek çözüm

main.dart
void main() async {
  print('başla');
  await Future.microtask(() => print('micro'));
  print('bitti');
}

Beklenen çıktı

başla
micro
bitti

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi event kuyruğuna eklenir?

  • Future.value
  • Future.microtask
  • scheduleMicrotask
  • Future.delayed Doğru cevap

Açıklama: Future.delayed event kuyruğuna görev ekler.

2 Kavramları eşleştir

Kavram Anlamı
Event loop Tek iş parçacığı
Microtask Öncelikli kuyruk
Future.delayed Event kuyruğu
Zone Yürütme ortamı

3 Microtask zamanla

Soru
____(() => print('m'));
Cevap
scheduleMicrotask(() => print('m'));

Açıklama: scheduleMicrotask microtask kuyruğuna ekler.

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