@43.2 Event Loop in Dart

ကျတော််တို့ အရင် post မှာ Dart Programming နဲ့ Flutter Framework မှာ အလုပ်လုပ်တဲ့ Thread(Ioslate) တွေအကြောင်းကို ပြောခဲ့ ပြီးပြီဖြစ်ပါတယ်။ အခု post မှာတော့ event loop အကြောင်းကို လေ့လာသွားမယ်။
အရင် post => @43 Asynchronous Programming in Dart & Flutter
Dart Programming Language က Single Threaded ဖြစ်တဲ့အတွက် ၁ ကြိမ်မှာ အလုပ်၁ ခု ကိုပဲလုပ်နိုင်မှာဖြစ်ပါတယ်။
Note* Flutter က single thread မဟုတ်ပါ။

Flutter Framework မှာတော့ ၁ ကြိမ်မှာ အလုပ် ၁ ခုပဲ လုပ်ရင် မလုံလောက်တဲ့အတွက် Multi Threaded run နေတာဖြစ်ပါတယ်။
ဒါပေမယ့် အခုက Single Thread ဆိုတော့ Heavy Operation တွေကို run မယ်ဆိုရင် နောက်လာမယ့် process တွေအားလုံး ရပ်သွားမှာ ဖြစ်ပါတယ်။

အိုကေ ကားအသေးတွေကို normal process အနေနဲ့ ယူဆလိုက်မယ်ဆိုရင် heavy process ကြီးမပြီးမချင်း ကျတော်တို့ ရဲ့ normal process တွေက စောင့်နေရမှာ ဖြစ်ပါတယ်။ အဲ့ တာကို ဖြေရှင်းဖို့အတွက် Dart Programming Language မှာ Event Loop နဲ့ handle လုပ်သွားမှာဖြစ်ပါတယ်။ Javascript နဲ့ သဘောတရားချင်းအတူတူပဲဖြစ်ပါတယ်။ Event Loop ထဲမှာ Queue ၂ ခုရှိပြီး MicroTask Queue နဲ့ Event Queue ဆိုတာတော့ အရင် post မှာ ပြောခဲ့ပြီးဖြစ်ပါတယ်။

ဒါကတော့ Dart Programming Language ရဲ့ Single Thread မှာအလုပ်လုပ်တဲ့ asynchronous model ပဲ ဖြစ်ပါတယ်။
