Özet - Concurrency
- Dart kursu
- İleri seviye
- Ders 12/83
- 5 dk
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
void main() {
// async yap; 'başla' yazdır; microtask ile 'micro' yazdır; 'bitti' yazdır
}Örnek çözüm
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
____(() => print('m'));
scheduleMicrotask(() => print('m'));
Açıklama: scheduleMicrotask microtask kuyruğuna ekler.