အောက်ပါဥပမာသည် Goroutine နှင့် Channel ကို အသုံးပြု. ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းများကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည်။
func main() {
ch := make(chan string)
go asyncTask(ch)
fmt.Println(<-ch)
}
func asyncTask(ch chan string) {
// ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းများကိုလုပ်ဆောင်ပါ
time.Sleep(time.Second)
ch <- "ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းကွပ်မျက်ပြီးစီးခဲ့သည်"
}
ဤဥပမာတွင် asynchronous task ကို goroutine အသစ်တွင်ကွပ်မျက်ခံရပြီးပြီးစီးပြီးနောက်ရလဒ်ကိုရုပ်သံလိုင်းမှတစ်ဆင့်အဓိကအစီအစဉ်သို့ပြန်ပို့သည်။
အောက်ဖော်ပြပါဥပမာသည်ပြတ်တောင်းပြတ်တောင်း server တစ်ခုဖန်တီးရန်နှင့် SWOOLE တိုးချဲ့မှုကို အသုံးပြု. ပြတ်တောင်းပြတ်တောင်း DNS မေးမြန်းမှုကိုပြုလုပ်နေသည့်လုပ်ငန်းစဉ်ကိုပြသသည်။
// asynchronous server ကိုဖန်တီးပါ
$server = new SwooleServer('127.0.0.1', 9501, SWOOLE_PROCESS, SWOOLE_SOCK_TCP);
// တစ် ဦး asynchronous callback function ကိုတက် setting
$server->on('Receive', function ($server, $fd, $from_id, $data) {
// ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းများကိုလုပ်ဆောင်ပါ
swoole_async_dns_lookup("www.baidu.com", function($host, $ip){
// asynchronous task ပြီးနောက်ပြန်ခေါ်ချက်ပြီးစီးခဲ့သည်
echo "ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းကွပ်မျက်ပြီးစီးခဲ့သည်";
echo $ip;
});
});
// ဆာဗာကိုစတင်ပါ
$server->start();
SWOOLE မှတစ်ဆင့် PHP သည်ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးကိုအတိုင်းအတာတစ်ခုအထိအပြင်းအထန်ပြုလုပ်နိုင်သည်။
နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
ExecutorService executor = Executors.newFixedThreadPool(10);
Future<String> future = executor.submit(new Callable<String>() {
public String call() throws Exception {
// ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းများကိုလုပ်ဆောင်ပါ
Thread.sleep(1000);
return "ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းကွပ်မျက်ပြီးစီးခဲ့သည်";
}
});
// ပြတ်တောင်းပြတ်တောင်းအလုပ်ရလဒ်များကိုရယူပါ
String result = future.get();
System.out.println(result);
// ချည်ရေကန်ကိုပိတ်ပါ
executor.shutdown();
ဤပုံစံသည် Multi-Threaded asynchronous task processing တွင် Java တည်ငြိမ်ပြီးရင့်ကျက်စေသည်။
Go Gouout သည်အလွန်နိမ့်သောဖန်ဆင်းခြင်းနှင့်ကုန်ကျစရိတ်များကြောင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းဖြစ်ရပ်များတွင်ကောင်းမွန်စွာလုပ်ဆောင်သည်။
PHP သည် SWOOLE extension ကိုအသုံးပြုသည်။
Java သည်အစဉ်မပြတ်စီးပွားရေးအဆင့်အပလီကေးရှင်းများအတွက်သင့်တော်သောချည်နေသည့်အိုးများမှတဆင့် esolnchronous အလုပ်များကိုစီမံခန့်ခွဲသော်လည်း Thread switch ၏ကုန်ကျစရိတ်မှာမြင့်မားသည်။
ယေဘုယျအားဖြင့် Go Go Language သည်အထင်အရှားပြတ်တောင်းပြတ်တောင်းအလုပ်အပြောင်းအလဲများတွင်သိသာထင်ရှားသည့်အကျိုးကျေးဇူးများရှိသည်။ PHP နှင့် Java သည်စီးပွားရေးအခြေအနေများနှင့်ဖွံ့ဖြိုးရေးအဖွဲ့နည်းပညာများအတွက်ပိုမိုသင့်တော်သည်။