Asynchronous programming (သင်တန်း အပြည့်အစုံ)

Asynchronous programming (သင်တန်း အပြည့်အစုံ)

Asynchronous programming သည် မကြာသေးမီက classical parallel programming ထက် အနည်းငယ်သာ ဖွံ့ဖြိုးလာခဲ့ပြီး JavaSript ၏ကမ္ဘာကြီးတွင်၊ browsers နှင့် Node.js တို့တွင်၎င်း၏နည်းပညာများကိုနားလည်ခြင်းသည် developer များ၏ကမ္ဘာ့အမြင်ကိုပုံဖော်ရာတွင် အဓိကနေရာတစ်ခုဖြစ်သည်။ ကျယ်ကျယ်ပြန့်ပြန့် ပြတ်ပြတ်သားသား ပရိုဂရမ်ရေးဆွဲခြင်း၊ ၎င်းတို့ကြားရှိ အဒက်တာများနှင့် အရန်အဖွင့်များကြားတွင် ကျယ်ကျယ်ပြန့်ပြန့် ရှင်းလင်းချက်ဖြင့် အလုံးစုံနှင့် အပြည့်စုံဆုံး သင်တန်းတစ်ခုကို သင့်အာရုံကို ကျွန်ုပ် ဆောင်ပါသည်။ လက်ရှိတွင် ၎င်းတွင် ပို့ချချက် ၂၃ ခု၊ အစီရင်ခံစာ ၃ ခုနှင့် github တွင် ကုဒ်နမူနာများစွာပါဝင်သည့် သိုလှောင်ခန်း ၂၈ ခု ပါဝင်သည်။ စုစုပေါင်း ဗီဒီယို 23 နာရီခန့် အစီအစဉ်သို့ လင့်ခ်.

ပုံကြမ်းအတွက် ရှင်းလင်းချက်

ပုံကြမ်း (အထက်) သည် asynchrony ဖြင့် လုပ်ဆောင်သည့် မတူညီသောနည်းလမ်းများကြား ချိတ်ဆက်မှုများကို ပြသသည်။ ရောင်စုံတုံးများသည် အညီအမျှ ပရိုဂရမ်ရေးဆွဲခြင်းကို ရည်ညွှန်းပြီး b/w သည် အပြိုင်ပရိုဂရမ်းမင်းနည်းလမ်းများ (semaphores, mutexes, barriers, etc.) နှင့် Petri nets၊ asynchronous programming နှင့် actor model ကဲ့သို့ပင်၊ သည် parallel computing ကို အကောင်အထည်ဖော်ရန်အတွက် မတူညီသောချဉ်းကပ်မှုများဖြစ်သည် (၎င်းတို့မှာ၊ Asynchronous ပရိုဂရမ်းမင်း၏နေရာကို ပိုမိုတိကျစွာဆုံးဖြတ်ရန်သာ ပုံတွင်ဖော်ပြထားသည်)။ ဇတ်ကောင်ပုံစံသည် အပြိုင်အဆိုင်လုပ်ဆောင်ခြင်းမရှိဘဲ သရုပ်ဖော်ခြင်းဆိုင်ရာ ပရိုဂရမ်များကို အကောင်အထည်ဖော်ရာတွင်လည်း တည်ရှိခွင့်ရှိပြီး အပြိုင်အဆိုင်ပြုလုပ်သည့်ကုဒ်ကို ဖွဲ့စည်းတည်ဆောက်ရန် လုပ်ဆောင်နိုင်သောကြောင့် သရုပ်ဆောင်မော်ဒယ်သည် ဆက်စပ်နေသည်။ အစက်ချမျဉ်းများသည် အဖြစ်အပျက်များနှင့် တစ်ပြိုင်နက်တည်း တန်းစီခြင်းကို ခေါ်ဆိုမှုများနှင့် ချိတ်ဆက်ထားသောကြောင့် အဆိုပါ abstraction များသည် ပြန်လည်ခေါ်ဆိုမှုများအပေါ် အခြေခံထားသော်လည်း အရည်အသွေးပိုင်းအရ ချဉ်းကပ်မှုအသစ်များရှိနေသေးသောကြောင့်ဖြစ်သည်။

ဟောပြောပွဲအကြောင်းအရာများ

1. Asynchronous ပရိုဂရမ်းမင်း (ခြုံငုံသုံးသပ်ချက်)
2. အချိန်တိုင်းစက်များ၊ အချိန်ကုန်ဆုံးမှုများနှင့် EventEmitter
3. ပြန်လည်ခေါ်ဆိုမှုများကို အသုံးပြု၍ အညီအမျှ ပရိုဂရမ်ရေးဆွဲခြင်း။
4. Non-blocking asynchronous iteration
5. async.js စာကြည့်တိုက်နှင့် တပြိုင်တည်း ချိန်ကိုက်ခြင်း။
6. ကတိများပေါ်တွင် ထပ်တူထပ်မျှ
7. Asynchronous လုပ်ဆောင်ချက်များနှင့် အမှားအယွင်းများကို ကိုင်တွယ်ခြင်း။
8. Asynchronous အဒက်တာများ- ကတိပေးသည်၊ ပြန်ခေါ်ရန်၊ တပြိုင်တည်းလုပ်ဆောင်သည်။
9. Asynchronous ဒေတာစုဆောင်းသူများ
10. ကတိမတည်သော အမှားများ
11. asynchronous stacktrace ပြဿနာ
12. ဂျင်နရေတာများနှင့် အညီအမျှ ဂျင်နရေတာများ
13. Iterators နှင့် asynchronous iterators
14. အပြိုင်အဆိုင်လုပ်ဆောင်မှုများကို ပယ်ဖျက်ခြင်း။
15. Asynchronous function ဖွဲ့စည်းမှု
16. အသုံးပြုနိုင်သလို ပေါ့ပါးစွာ စောင့်ကြိုနေပါသည်။
17. ပြိုင်တူ အပြိုင်အဆိုင် တန်းစီခြင်း။
18. ပုံစံဖွင့်တည်ဆောက်သူ (Revealing Constructor)၊
19. အနာဂတ်- နိုင်ငံမဲ့ အနာဂတ်များ အပေါ် ထပ်တူထပ်မျှ
20. ရွှေ့ဆိုင်းခြင်း- နိုင်ငံပိုင်ခြားနားမှုများအပေါ် ကွဲလွဲမှု
21. သရုပ်ဆောင် မော်ဒယ်
22. Pattern Observer (Observer + Observable)၊
23. RxJS နှင့် event streams များတွင် Asynchrony

ဗီဒီယိုတစ်ခုစီတွင် ဗီဒီယိုတွင် ရှင်းပြထားသည့် ကုဒ်နမူနာများပါသည့် သိုလှောင်ရုံများသို့ လင့်ခ်များ ရှိသည်။ အရာရာတိုင်းကို ကွဲလွဲမှုတစ်ခုအဖြစ် လျှော့ချရန် မလိုအပ်ကြောင်း ပြသရန် ကြိုးစားခဲ့သည်။ asynchrony တွင် universal ချဉ်းကပ်မှုမျိုးမရှိပါ၊ နှင့် case တစ်ခုစီအတွက် သင်သည် ဤသတ်သတ်မှတ်မှတ်အလုပ်အတွက် ကုဒ်ကို သဘာဝကျကျရေးနိုင်စေမည့် ထိုနည်းလမ်းများကို သင်ရွေးချယ်နိုင်ပါသည်။ ဟုတ်ပါတယ်၊ ဒီသင်တန်းကို ဖြည့်စွက်ပြီး ခေါင်းစဉ်အသစ်တွေနဲ့ ကုဒ်နမူနာတွေကို ပံ့ပိုးပေးဖို့ လူတိုင်းကို တောင်းဆိုပါတယ်။ သင်တန်း၏ အဓိက ရည်ရွယ်ချက်မှာ အတွင်းပိုင်းမှ ကွဲလွဲနေသော abstraction များကို မည်သို့တည်ဆောက်ရမည်ကို ပြသရန်ဖြစ်ပြီး ၎င်းတို့ကို အသုံးပြုပုံကို သင်ကြားပေးရုံသာမကဘဲ။ abstraction အားလုံးကို စာကြည့်တိုက်များမှ မယူဆောင်ဘဲ ၎င်းတို့၏ အရိုးရှင်းဆုံး အကောင်အထည်ဖော်မှုတွင် ပေးဆောင်ပြီး ၎င်းတို့၏ လုပ်ငန်းကို အဆင့်ဆင့် ခွဲခြမ်းစိတ်ဖြာပါသည်။

စာရင်းသွင်းအသုံးပြုသူများသာ စစ်တမ်းတွင် ပါဝင်နိုင်ပါသည်။ ဆိုင်းအင်လုပ်ခြင်း, ကျေးဇူးပြု။

သင်တန်းနဲ့ ပတ်သက်ပြီး မင်းရဲ့ အမြင်က ဘယ်လိုလဲ။

  • သင်တန်းတစ်ခုလုံးကို ကြည့်မယ်။

  • ရွေးကြည့်မယ်။

  • ချဉ်းကပ်နည်းတစ်ခုက ကျွန်တော့်အတွက် လုံလောက်ပါတယ်။

  • သင်တန်းအတွက် ကူညီပေးပါ့မယ်

  • ကွဲလွဲမှုကို စိတ်မဝင်စားပါဘူး။

အသုံးပြုသူ ၁၆ ဦး မဲပေးခဲ့သည်။ အသုံးပြုသူ 8 ဦး ရှောင်ခဲ့သည်။

source: www.habr.com

မှတ်ချက် Add