40 အတွက်ထိပ်တန်းဂျာဗား Multithreading အင်တာဗျူးမေးခွန်းများ 2021


ဤသင်ခန်းစာတွင်အရေးကြီးသော Java multithreading အင်တာဗျူးမေးခွန်းများနှင့် java thread အင်တာဗျူးမေးခွန်းများနှင့် java တစ်ပြိုင်နက်တည်းအင်တာဗျူးမေးခွန်းများပါ ၀ င်သည်။

မာတိကာ

၁။ ချည်ဘာကဘာလဲ။

တစ် ဦး ကချည်သီးခြားကွပ်မျက်လမ်းကြောင်းကိုအောက်ပါအတိုင်း subprocess ဖြစ်ပါတယ်။ Thread တိုင်းသည်တူညီသောလုပ်ငန်းစဉ်အရင်းအမြစ်များကိုမျှဝေထားသော်လည်းလွတ်လပ်စွာလုပ်ဆောင်သည်။ Thread တစ်ခုစီသည်မတူညီသော stack frame တစ်ခုတွင်အလုပ်လုပ်သည်။

၂။ java တွင် multithreading ဆိုတာဘာလဲ။

multithreading သည် တ ဦး တည်းသို့မဟုတ်ထိုထက်ပိုသောချည်ကွပ်မျက်၏လုပ်ငန်းစဉ် တစ်ပြိုင်နက်တည်းမှာ၎င်းသည်တစ်ချိန်တည်းတွင်အလုပ်များစွာကိုလုပ်ဆောင်ရာတွင်ကူညီသည်။ Thread တိုင်းသည်တူညီသောအရင်းအမြစ်များကိုမျှဝေခြင်းဖြင့်လွတ်လပ်စွာအလုပ်လုပ်သည်။

multithreading ၏အားသာချက်များကားအဘယ်နည်း။

  • မှတ်ဥာဏ်နည်းတယ်
  • စွမ်းဆောင်ရည်မြန်သည်
  • ပိုမိုထိရောက်
  • multitasking ကိုထောက်ပံ့သည်
  • ချည်သည်လွတ်လပ်သောကြောင့်ချည်တစ်ချောင်းမှချွင်းချက်သည်အခြားတစ်ခုကိုမထိခိုက်ပါ

4. ချည်မျှင်တစ်ဘဝ၏သံသရာအတွက်ကွဲပြားခြားနားသောပြည်နယ်များဘာတွေလဲ?

  • နယူး
  • Runnable
  • ပြေး
  • Non-Runnable
  • ရပ်လိုက်ပြီ

5. Thread ဖန်တီးရန်ကွဲပြားခြားနားတဲ့နည်းလမ်းတွေကဘာတွေလဲ။

Thread ဖန်တီးရန်နည်းလမ်း ၂ ခုရှိသည်။

  • Thread အတန်းအစားတိုးချဲ့
  • Runnable လူတန်းစားအကောင်အထည်ဖော်

၆။ Thread.start () method ကိုဘယ်လိုအသုံးပြုမလဲ။

Thread.start () method သည် thread process ကိုစတင်ပြီး run () method ကိုသုံးသည်။

၇။ Java ၌ thread class ၏ကွဲပြားခြားနားသောတည်ဆောက်သူများကဘာတွေလဲ။

  • Thread ()
  • Thread (String နာမည်)
  • Thread (Runnable r)
  • Thread (Runnable r, String နာမည်)

၈။ ကြိုးတစ်ချောင်းကိုနှစ်ကြိမ်စနိုင်သလား။

၎င်းသည် multithreading တစ်ခုဖြစ်သည် java အင်တာဗျူး မေးခွန်းများကို။

အဘယ်သူမျှမကျနော်တို့နှစ်ကြိမ်ချည်စတင်နိုင်ပါတယ်။ အောက်ဖော်ပြပါဥပမာကဲ့သို့သော thread ကိုပြန်လည်စတင်ရန်ကြိုးစားသောအခါ၎င်းသည်တူညီသော thread ၏ဒုတိယ start () method ကိုလုပ်ဆောင်သောအခါ IllegalThreadStateException ကိုရရှိမည်ဖြစ်သည်။

public class ThreadDemo extends Thread {
  
  public void run() {
    System.out.println("THread running");
  }

  public static void main(String[] args) {
    ThreadDemo t = new ThreadDemo();
    t.start();
    t.start();
  }

}
Exception in thread "main" THread running
java.lang.IllegalThreadStateException
  at java.base/java.lang.Thread.start(Thread.java:790)
  at ThreadDemo.main(ThreadDemo.java:11)

၉။ တစ် ဦး နှင့်တစ် ဦး ဆက်သွယ်ရာတွင်အသုံးပြုသောချည်၏ကွဲပြားခြားနားသောနည်းလမ်းများမှာအဘယ်နည်း။

  • () နည်းလမ်းကိုစောင့်ပါ
  • () method ကိုအသိပေးပါ
  • notifyAll () နည်းလမ်း

၁၀။ သုံးစွဲသူချည်မျှင်နှင့် daemem thread တစ်ခုအကြားကွာခြားချက်ကဘာလဲ။

အသုံးပြုသူအကြောင်းအရာDaemon ချည်
မြင့်မားသော ဦး စားပေးချည်အနိမ့် ဦး စားပေးချည်
foreground တွင်အလုပ်လုပ်သည်နောက်ခံတွင်အလုပ်လုပ်သည်
တိကျသောရှုပ်ထွေးသောလုပ်ငန်းကိုလုပ်ဆောင်သည်ထောက်ပံ့ပေးလုပ်ဆောင်သည်
JVM သည်တက်ကြွသောအသုံးပြုသူအတွက်အပိတ်မတိုင်မီပြီးစီးရန်အမြဲစောင့်နေသည်JVM သည် daemon ချည်ခြင်းမပိတ်ခင်ပြီးစီးရန်စောင့်ဆိုင်းခြင်းမရှိပါ
အလုပ်အချို့ကိုလုပ်ရန်အတွက် Java application မှဖန်တီးသည်JVM မှဖန်တီးသည်
ဒါဟာလွတ်လပ်ပါတယ်၎င်းသည်အသုံးပြုသူအကြောင်းအရာအပေါ်မူတည်သည်

သတ်မှတ်ထားသောအချိန်များအတွက်ချည်ကွပ်မျက်ရပ်တန့်ဖို့ဘယ်လို 11. ?

အိပ်နေစဉ် () နည်းလမ်းကို အသုံးပြု၍ ချည်သည်သတ်မှတ်ထားသောအချိန်အတိုင်းအတာတစ်ခုအထိ၎င်းကိုရပ်တန့်စေရန်ပြုလုပ်နိုင်သည်။ နိုးလာသည်နှင့်တပြိုင်နက်၎င်းသည်အခြေအနေကိုလည်ပတ်နိုင်သည့်အနေအထားသို့ပြောင်းလိုက်ပြီးချိန်းသည့်အစီအစဉ်ကိုအခြေခံသည်။

ချည် ဦး စားပေးကဘာလဲ?

ချည်တိုင်းသည် ၁ မှ ၁၀ အထိ ၁ နှင့် ၁ သည်အနိမ့်ဆုံးဖြစ်ပြီး ၁၀ သည်အမြင့်ဆုံးဖြစ်သည်။ အမြင့်ဆုံး ဦး စားပေးချည်သည်အမြဲတမ်း ဦး စားပေးလုပ်ဆောင်သည့်အရာဖြစ်ပြီးအမြဲတမ်း Thread Scheduler အကောင်အထည်ဖော်မှုပေါ်တွင်လည်းမူတည်သည်။

13. Thread Scheduler နှင့်အချိန်ဖြတ်ဆိုတာဘာလဲ။

thread scheduler သည် ၀ န်ဆောင်မှုတစ်ခုဖြစ်သည် ကွန်ပျူတာစက်လည်ပတ်ရေးစနစ်ပရိုဂရမ် ကြောင်းစီစဉ်ထားသို့မဟုတ်ချည်ကွပ်မျက်များအတွက် CPU ကိုအချိန်ခွဲဝေချထားပေးရန်။ ကျွန်ုပ်တို့သည် thread တစ်ခုဖန်တီးပြီး၎င်းကိုစတင်သည်နှင့် thread scheduler သည်၎င်း၏အကောင်အထည်ဖော်မှုအပေါ်အခြေခံပြီးမည်သည့်အချိန်တွင်ချည်မည်ကိုဆုံးဖြတ်ရန်ဆုံးဖြတ်သည်။

အချိန်ကုန်သက်သာခြင်းဆိုသည်မှာလည်ပတ်နေသောချည်များအတွက် CPU အချိန်ရရှိရန်ဖြစ်သည်။ ၎င်းသည်ချည်ထားသည့် ဦး စားပေးနှင့်ချည်ထားသည့်အချိန်အပေါ်မူတည်နိုင်သည်။

multithreading အတွက်အခြေအနေတွင် switching ကဘာလဲ?

Contexting switch သည် multitasking (သို့) multithreading များတွင်အသုံးပြုသော process တစ်ခုဖြစ်ပြီး thread တစ်ခုရဲ့ CPU state ကိုကျွန်တော်တို့ restore လုပ်နိုင်တယ်။ ၎င်းသည်အချိန်ကာလတစ်ခုအကြာတွင်ခေတ္တရပ်နားထားသည့်နေရာမှပင် thread ချည်နှောင်ခြင်းကိုဆက်လက်လုပ်ဆောင်ရန်ကူညီသည်။

၁၅။ ကျွန်ုပ်တို့သည်ထပ်တူပြုထားသည့်နည်းလမ်း (သို့) ပိတ်ပင်တားဆီးမှုမှ wait (), notification () နှင့် notifyAll () နည်းလမ်းများကိုအဘယ်ကြောင့်ခေါ်ဆိုသနည်း။

ဤအရာအလုံးစုံနည်းလမ်းများသည် Object Monitor ပေါ်တွင်မှီခိုနေရသည်။ အကြောင်းမှာ thread တစ်ခုသည်ချောင်းမြောင်းနေသောအခြေအနေတွင်ရှိလျှင်၎င်းသည် object monitor ကိုစွန့်ပြီး၎င်းသည် notification () method ကိုခေါ်သည့်အထိပြန်သွားသည်။ ဤနည်းလမ်းများအားလုံးသည်တစ်ခုနှင့်တစ်ခုထပ်တူပြုရန်လိုအပ်သောကြောင့်၎င်းတို့ကိုထပ်တူပြုထားသောနည်းလမ်းသို့မဟုတ်ပိတ်ပင်တားဆီးမှုမှသာခေါ်ရန်လိုအပ်သည်။

၁၆။ Java တွင်လုံခြုံမှုရှိစေရန်မည်သို့လုပ်ဆောင်ရမည်နည်း။

  • ထပ်တူဖြစ်အောင်လုပ်ခြင်း
  • အက်တမ်တစ်ပြိုင်နက်တည်းလူတန်းစား
  • တစ်ပြိုင်နက်တည်းသော့ခတ် interface ကို
  • မတည်ငြိမ်သောသော့ချက်စာလုံး
  • မပြောင်းလဲနိုင်သောအရာများအတန်း
  • Thread- ဘေးကင်းလုံခြုံအတန်း

မတည်ငြိမ်သောသော့ချက်စာလုံးကိုအသုံးပြုခြင်းကဘာလဲ။

ဘယ်အချိန်မှာကျနော်တို့ variable တစ်ခုကြေညာ တည်ငြိမ်မှုမရှိသောကြောင့်၎င်းသည် variable ၏တန်ဖိုးကို cache အစား memory မှတိုက်ရိုက်ဖတ်သည်။

၁၈။ daemon thread ကိုဘယ်လိုဖန်တီးရမလဲ။

Thread အတန်းအစား၏ setDaemon (true) method ကို အသုံးပြု၍ daemon thread ကိုဖန်တီးနိုင်သည်။ ကျွန်ုပ်တို့က IllegalThreadStateException ကိုလွှင့်ပစ်မည့် start () method ကိုမခေါ်မီဤနည်းလမ်းကိုအသုံးပြုရန်လိုအပ်သည်။

၁၉။ Java တွင် Thread Dump ဆိုသည်မှာအဘယ်နည်း။

Thread Dump ဆိုသည်မှာပိတ်ဆို့မှုများနှင့်အကျပ်အတည်းအခြေအနေများကိုခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုသောတက်ကြွသောချည်များဖြစ်သည်။ ကျွန်ုပ်တို့သည် Profiler၊ kill-3 command, jstack tool စသည်ဖြင့် သုံး၍ thread dump ကိုထုတ်လုပ်နိုင်သည်။

20. အကျပ်အတည်းကဘာလဲ? အကျပ်အတည်းအခြေအနေကိုဘယ်လိုခွဲခြားပြီးဘယ်လိုရှောင်ရှားမလဲ

အကျပ်အတည်းသည်ချည်များကိုထာဝရပိတ်ဆို့ထားသည့်အခြေအနေဖြစ်သည်။ နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောချည်အချင်းချင်းတစ်ခုပေါ်တွင်မူတည်သည်တူညီသောအရင်းအမြစ်ကိုရယူသောအခါဤသည်တွေ့ရှိနိုင်ပါသည်။ တနည်းအားဖြင့်ချည်သည်တစ်ခုမျှမချိန်းဘဲကျန်သည်ချည်ထည်တစ်ခုသည်စောင့်ဆိုင်းနေသောအခြေအနေနှင့်ပြီးဆုံးရန်အခြားချည်ကိုစောင့်နေသည့်အချိန်တွင်မည်သည့်အရာမျှမစီရင်နိုင်ပါ။

ကျွန်ုပ်တို့သည်ပိတ်ဆို့ထားသည့်အခြေအနေကိုကြည့်။ ပိတ်ဆို့ထားသောအခြေအနေမှချည်များကိုရှာဖွေခြင်းအားဖြင့်အကျပ်အတည်းအခြေအနေကိုဆန်းစစ်နိုင်သည်။

အသိုက်သော့ခတ်အသုံးပြုခြင်းကိုရှောင်ရှားခြင်း၊ အဆုံးမဲ့စောင့်ဆိုင်းခြင်းနှင့်လိုအပ်သောအရာကိုသာသော့ခတ်ခြင်းဖြင့်ကျွန်ုပ်တို့သည်ပိတ်ဆို့ခြင်းကိုရှောင်ရှားနိုင်သည်။

၂၁။ စောင့်ဆိုင်း () နှင့်အိပ်စက်ခြင်း () နည်းလမ်းများအကြားကွာခြားချက်ကဘာလဲ။

စောင့်ဆိုင်း () နည်းလမ်းသည်အစိတ်အပိုင်းတစ်ခုဖြစ်သည် အရာဝတ္ထုအတန်း sleep () method သည် Thread class ၏အစိတ်အပိုင်းတစ်ခုဖြစ်သော်လည်း lock ကိုမလွှတ်ပေးသော်လည်း lock ကိုလွှတ်ပေးရန်အသုံးပြုသည်။

၂၂။ join () နည်းလမ်းကဘာလဲ။

join () method သည်လက်ရှိလုပ်ဆောင်နေသော task ကို၎င်းပြီးစီးသည့် task list ထဲသို့မဝင်မှီအထိ execution ကိုရပ်တန့်ရန်စောင့်သည်။ တနည်းအားဖြင့်ချည်သည်ရပ်စဲသည့်ပြည်နယ်သို့သွားရန်စောင့်သည်။

23. အချင်းချင်းဆက်သွယ်မှုဆက်သွယ်မှုဆိုတာဘာလဲ။

Inter-thread ဆက်သွယ်မှုသည်ထပ်တူကျသောချည်များအကြားဆက်သွယ်ရေးလုပ်ငန်းစဉ်ဖြစ်ပြီးချည်စစ်မဲကောက်ခြင်းကိုရှောင်ရှားရန်အသုံးပြုသည်။ တ ဦး တည်းချည်အရေးပါပြည်နယ်အတွက်၎င်း၏ကွပ်မျက်ရပ်ဆိုင်းခြင်းနှင့်အခြားချည်အတူတူပင်အရေးပါပြည်နယ်အတွက်ကွပ်မျက်ရိုက်ထည့်ဖို့ခွင့်ပြုသည့်အခါဤသည်အသုံးဝင်သည်။

၂၄။ လုပ်ငန်းစဉ်တစ်ခုနှင့်ချည်အကြားခြားနားချက်များကားအဘယ်နည်း။

ဖြစ်စဉ်အပ်ချည်
တစ် ဦး ကဖြစ်စဉ်ကိုကွပ်မျက်အတွက် program တစ်ခုဖြစ်ပါတယ်Thread သည်လုပ်ငန်းစဉ်၏အစိတ်အပိုင်းတစ်ခုဖြစ်သည်
လုပ်ငန်းစဉ်များသည်ကွဲပြားသောလိပ်စာနေရာကိုထိန်းသိမ်းသည်Threads သည်လိပ်စာအတူတူပင်ဖြစ်သည်
ဆက်စပ်ပြောင်းမှုသည်နှေးသည်ဆက်စပ်ပြောင်းခြင်းသည်ပိုမိုမြန်ဆန်သည်
Inter-process ဆက်သွယ်မှုနှေးကွေးသည်အပြန်အလှန်ဆက်သွယ်မှုသည်ပိုမိုမြန်ဆန်သည်
မိဘလုပ်ငန်းစဉ်ပြောင်းလဲမှုသည်ကလေးလုပ်ငန်းစဉ်အပေါ်သက်ရောက်မှုမရှိပါမိဘချည်ပြောင်းလဲမှုရှိပါကကလေးသည်သက်ရောက်မှုရှိသည်

25. shutdown connection ဆိုတာဘာလဲ။

Shutdown ချိတ်သည် JVM မှသွယ်ဝိုက်သောအားဖြင့်ဖြစ်စေ၊ ရုတ်တရက်ဖြစ်စေအရင်းအမြစ်များကို JVM ပိတ်ခြင်းမတိုင်မီရှင်းလင်းစွာခေါ်ဆိုခြင်းဖြစ်သည်။

၂၆။ ဘယ်အချိန်မှာချည်ထုပ်နိုင်မလဲ။

အိပ်စက်ခြင်းသို့မဟုတ်စောင့်ဆိုင်းခြင်းအခြေအနေမှချည်ကိုနိုးထစေလိုသည့်အခါကျွန်ုပ်တို့သည်ချည်မျှင်ကိုကြားဖြတ်နိုင်သည်။ ကျွန်ုပ်တို့သည် InterruptExeception ကိုလွှင့်စေသော interrupt () method ကိုခေါ်ခြင်းဖြင့်ကျွန်ုပ်တို့ထိုသို့ပြုလုပ်နိုင်သည်။

ထပ်တူပြုခြင်းဆိုသည်မှာအဘယ်နည်း။

ထပ်တူပြုခြင်းဆိုသည်မှာအရင်းအမြစ်မျိုးစုံသို့ချည်မျှင်များစွာကိုအသုံးပြုခြင်းကိုထိန်းချုပ်ရန်ဖြစ်သည်။ တနည်းအားဖြင့်တ ဦး တည်းချည်မျှဝေအရင်းအမြစ်ကိုအသုံးပြုတဲ့အခါ, သူကသော့ခတ်ဖြန့်ချိသည်အထိအခြားချည်ကမသုံးနိုင်အောင်ကသော့ခတ်။ ၎င်းသည်အလွန်အရေးကြီးသည်၊ အကြောင်းမှာချည်မျှင်များသည်တစ်ချိန်တည်းတွင်လုပ်ငန်းတစ်ခုတည်းကိုလုပ်ဆောင်ရန်ကြိုးစားလျှင်အမှားများဖြစ်ပေါ်စေသည်။ ဤပြissueနာကိုရှောင်ရှားရန် Java သည်ထပ်တူပြုခြင်းသဘောတရားကိုမိတ်ဆက်ခဲ့သည်။

ကျွန်ုပ်တို့သည်အောက်ဖော်ပြပါနည်းလမ်း (၃) ခုဖြင့်ထပ်တူပြုခြင်းကိုရရှိနိုင်ပါသည်။

  • ထပ်တူနည်းလမ်းအားဖြင့်
  • ထပ်တူပြုခြင်းပိတ်ပင်တားဆီးမှု
  • ငြိမ်ထပ်တူ

၂၈။ လူမျိုးရေးအခြေအနေကဘာလဲ။

ပြိုင်ပွဲအခြေအနေတစ်ခုသည်ချည်မျှင်များကိုတစ်ချိန်တည်းတွင်လုပ်ငန်းတစ်ခုတည်းကိုအတူတကွလုပ်ဆောင်သောထပ်တူပြုခြင်းကိုမလျော်ကန်စွာအသုံးပြုခြင်းကြောင့်ပေါ်ပေါက်လာသောကြီးလေးသောပြproblemနာဖြစ်သည်။

ချည်ရေကန်ဆိုတာဘာလဲ။

thread pool သည်အလုပ်တစ်ခုကိုစောင့်နေသည့်အုပ်စုများကိုကိုယ်စားပြုသည်။ ၀ န်ဆောင်မှုပေးသူသည်တစ်ချိန်တည်းတွင်ကြိုးတစ်ချောင်းကိုဆွဲထုတ်ပြီး၎င်းကိုတာဝန်ပေးသည်။ ၎င်းသည်ပြီးဆုံးသည်နှင့်တစ်ပြိုင်နက်ချည်ရေကန်သို့ပြန်သွားသည်။ Thread pool ကိုအသုံးပြုခြင်းဖြင့်ကျွန်ုပ်တို့သည်ပိုမိုကောင်းမွန်သော system တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေပါသည်။

30. Concurrency API ၏အဓိကအစိတ်အပိုင်းများမှာအဘယ်နည်း။

Concurrency API ကိုအောက်ဖော်ပြပါအောက်တွင်ဖော်ပြထားသော Concurrency package ၏အမျိုးမျိုးသောအတန်းများနှင့် interface ကို အသုံးပြု၍ အကောင်အထည်ဖော်နိုင်သည်။

  • ကွပ်မျက်သူ
  • စီမံခန့်ခွဲသူ ၀ န်ဆောင်မှု
  • ScheduledExecutorService
  • အနာဂတ်
  • နေပြည်တော်
  • ThreadFactory
  • သော့ခတ်
  • နယူးယော့ခ်
  • ပိတ်ဆို့ခြင်းคิว
  • Semaphore
  • Phaser ပါ
  • .ရာဝတီ
  • ကောင်မလေး
  • FarkJoinPool

၃၁. Concurrency API ရှိ Executor interface ဆိုတာဘာလဲ။

အလုပ်တစ်ခုကိုလုပ်ရန်ကွပ်ကဲသူမျက်နှာပြင်ကိုအသုံးပြုသည်။ ၎င်းသည် execute () method ပါ ၀ င်သည့် java.util.concurrent အထုပ်နှင့်သက်ဆိုင်သည်။

BlockingQueue ဆိုတာဘာလဲ။

BlockingQueue သည် Queue မျက်နှာပြင်၏ကလေးမျက်နှာပြင်ဖြစ်သည်။ ၎င်းတွင်တန်ဖိုးအသစ်တစ်ခုကိုမထည့်သွင်းမီရရှိနိုင်သည့်နေရာကိုစောင့်ဆိုင်းရန်နှင့်တန်ဖိုးကိုပြန်လည်မရယူမီတန်းစီတွင်အချည်းနှီးဖြစ်လာရန်စောင့်ဆိုင်းရန်နည်းလမ်းများပါ ၀ င်သည်။

၃၃။ Java Callable နှင့် Runnable interface အကြားခြားနားချက်ကဘာလဲ။

အလုပ်များစွာကိုလုပ်ဆောင်ရန် Java Callable နှင့် Runnable interfaces နှစ်ခုလုံးကိုအသုံးပြုသည်။ အောက်ပါကွဲပြားခြားနားမှုများမှာ -

Callable interface ကိုRunnable interface ကို
တန်ဖိုးတစ်ခု returnမည်သည့်တန်ဖိုးကိုမှပြန်မပေးပါ
CheckedException ပစ်CheckedException ပစ်မထားဘူး
Java 5 မတိုင်မီကမရနိုင်ပါJava 5 မတိုင်မီကရရှိနိုင်သည်

Concurrency အတွက်အနုမြူဗုံးလုပ်ဆောင်မှုကဘာလဲ။

Atomic action ဆိုသည်မှာလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည်အခြားနည်းလမ်းများမှ ၀ င်ရောက်စွက်ဖက်ခြင်းမရှိဘဲလုပ်ငန်းတစ်ခုတည်းကိုလုပ်ဆောင်သည်။ ၎င်းသည်တစ်ပြိုင်နက်တည်းအထုပ်၏အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ အနုမြူဗုံးလုပ်ဆောင်မှုစတင်သည်နှင့်၎င်းကိုရပ်တန့ ်၍ မရပါ။ ကျနော်တို့ကအပြည့်အဝလုပ်ဆောင်ချက်ပြီးဆုံးသည်အထိစောင့်ဆိုင်းဖို့လိုအပ်ပါတယ် အားလုံးဒေသများနှင့်စရိုက် variable တွေကိုနှင့်မတည်ငြိမ်သော variable တွေကို၏ရေးသားစစ်ဆင်ရေးအနုမြူဗုံးစစ်ဆင်ရေးဖြစ်ကြသည်။

Concurrency တွင်သော့ခတ်မျက်နှာပြင်တစ်ခုကဘာလဲ။

ထပ်တူပြုခြင်းကိုအကောင်အထည်ဖော်ရန်သော့ခတ်မျက်နှာပြင်ကိုအသုံးပြုသည်။ ၎င်းသည်ထပ်တူပြုထားသောလုပ်ကွက်နှင့်ဆင်တူသော်လည်းကွဲပြားမှုအနည်းငယ်ရှိသည်။ Lock interface တစ်ခုတွင် lock () နှင့် unlock () method ပါဝင်ပြီး၎င်းသည် Thread မ်ားအားကွပ်မျက်ရန်စောင့်နေသည့်အစဉ်ကိုအာမခံသည်။ ဒါ့အပြင်၎င်းသည်အချိန်ကုန်စစ်ဆင်ရေးများကိုထောက်ပံ့သည်။

၃၆။ ExecutorService မျက်နှာပြင်ကဘာလဲ။

ExecutorService interface သည်စီမံခန့်ခွဲရန်အထူးလုပ်ဆောင်ချက်များရှိသော Executor interface ၏ subinterface တစ်ခုဖြစ်သည် ဘဝဖြစ်စဥ်.

၃၇။ synchronous နှင့် asynchronous programming အကြားခြားနားချက်ကဘာလဲ။

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

ပြတ်တောင်းပြတ်တောင်းပရိုဂရမ်တွင်၊ မျိုးစုံသောချည်များသည်တူညီသောလုပ်ငန်းကိုလုပ်ဆောင်နိုင်သည်။

၃၈။ start နှင့် run နည်းလမ်းသည်မည်သို့ကွာခြားသနည်း။

start method သည် thread အသစ်တစ်ခုကိုဖန်တီးပြီး thread အသစ်အတွက်ကုဒ်ကို execute လုပ်ရန် run နေသော method ကိုအတွင်းပိုင်းတွင်သုံးသည်

run နည်းလမ်းသည်ရှိပြီးသားချည်အတွက်ကုဒ်ကိုလုပ်သည်။

၃၉။ Notify () နှင့် NoticeAll () နည်းလမ်းသည်မည်သို့ကွာခြားသနည်း။

Notify () method သည်စောင့်ဆိုင်းနေသည့် Thread တစ်ခုတည်းကိုပိတ်ဆို့ထားသော်လည်း notAll () method သည်စောင့်ဆိုင်းနေသော Thread များအားလုံးကိုသော့ဖွင့်သည်။

40. T3, T1 နှင့် T2 ချည် ၃ ချပ်ရှိသည်ကိုစဉ်းစားပါ။ T3 ကို T2 ပြီးနောက် run ပြီး T1 ကို T3 ပြီးနောက် run ကြောင်းကျွန်ုပ်တို့မည်သို့သေချာစေနိုင်သနည်း။

ဤသည်ကိုမေးသော multithreading နှင့်ပတ်သက်သည့်ဘုံအင်တာဗျူးမေးခွန်းများအနက်တစ်ခုဖြစ်သည်။ အဖြေကတော့ join () method ကိုသုံးပြီးအဲဒါကိုသေချာအောင်လုပ်နိုင်တယ်။

ကောက်ချက်

ဤသင်ခန်းစာတွင်၊ ကျွန်ုပ်တို့သည်ထိပ်တန်း java multithreading မေးခွန်းများ၊ multithreading နှင့်ပတ်သက်သောအင်တာဗျူးမေးခွန်းများ၊ java thread အင်တာဗျူးမေးခွန်း၊ multithreading java အင်တာဗျူးမေးခွန်းများ၊ java multithreading မေးခွန်းများ၊ java တစ်ပြိုင်နက်တည်းတွေ့ဆုံမေးမြန်းခြင်းမေးခွန်းများကိုဖော်ပြထားသည်။