PHP Coroutines များသည်တစ်ပြိုင်နက်တည်းပတ် 0 န်းကျင်တစ်ခုတွင်တစ်ပြိုင်နက်တည်းအကောင်အထည်ဖော်ရန်နည်းလမ်းဖြစ်သည်။ ရိုးရာ PHP ကုဒ်သည် IO ပိတ်ဆို့ခြင်းအပေါ်အခြေခံသည်။ တောင်းဆိုမှုတစ်ခုစတင်သောအခါဆာဗာသည်အခြားတောင်းဆိုမှုများကိုမလုပ်ဆောင်မီ IO စစ်ဆင်ရေးကိုစောင့်ဆိုင်းရန်လိုအပ်သည်။ IO စစ်ဆင်ရေးကာလအတွင်း Corouttines သည်လက်ရှိအလုပ်ကိုခေတ္တရပ်တန့်ပြီးအခြားအလုပ်များကိုလုပ်ဆောင်နိုင်ပြီးတစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုကိုတိုးတက်စေသည်။
PHP Coroutines တွင်အောက်ပါသိသာထင်ရှားသည့်အားသာချက်များရှိသည်။
တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုစွမ်းရည်တိုးတက်အောင်ပြုလုပ်ခြင်း - Coroutines သည်လက်ရှိအလုပ်များကိုခေတ္တရပ်တန့်ပြီး IO စစ်ဆင်ရေးများအတွင်းအခြားအလုပ်များကိုဆက်လက်လုပ်ဆောင်နိုင်ပြီး IO စစ်ဆင်ရေးများအတွင်းအခြားအလုပ်များကိုလုပ်ဆောင်နိုင်သည်။
Omit အခြေအနေတွင် switching: ရိုးရာ Multipreaded သို့မဟုတ် Multiproadess Models သည်မကြာခဏဆိုသောပုံစံများကိုမကြာခဏဆိုသော switching လုပ်ရန်လိုအပ်ပြီး corouthe များသည်ဤ overhead ကိုရှောင်ရှားနိုင်သည်။
အရင်းအမြစ်စားသုံးမှုကိုလျှော့ချပါ။ Corouttes သည်မှတ်ဉာဏ်နှင့် CPU သုံးစွဲမှုကိုလျှော့ချနိုင်သည်။
PHP corouttines များကိုမီးစက်သို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များမှတဆင့်အကောင်အထည်ဖော်နိုင်သည်။ အောက်ပါတို့သည်အကောင်အထည်ဖော်မှုနည်းလမ်းနှစ်ခုဖြစ်သည်။
PHP ၏ Generator Feature သည် Coroutines ကိုအထွက်နှုန်းသော့ချက်စာလုံးဖြင့်အကောင်အထည်ဖော်ရန်ခွင့်ပြုသည်။ အဆိုပါမီးစက် function ကို iterator ထုံးစံ၌တန်ဖိုးအမျိုးမျိုးကိုပြန်အမ်း
function myCoroutine() {
$value1 = yield 'yield1';
$value2 = yield 'yield2';
yield $value1 + $value2;
}
$coroutine = myCoroutine();
$result1 = $coroutine->current();
$result2 = $coroutine->send(1);
$result3 = $coroutine->send(2);
မီးစက်များအပြင် developer များသည်တတိယပါတီ Coroutine စာကြည့်တိုက်အချို့ကို swoole သို့မဟုတ် riverphp ကဲ့သို့သောတတိယပါတီ Coroutine စာကြည့်တိုက်များကိုလည်းအသုံးပြုနိုင်သည်။ ဤစာကြည့်တိုက်များက coroutine controls နှင့် io စစ်ဆင်ရေးအထောက်အပံ့ပိုမိုများပြားသည်။
$coroutine = new Coroutine(function() {
$result1 = yield someAsyncTask();
$result2 = yield someAsyncTask();
yield $result1 + $result2;
});
$result = $coroutine->run();
PHP Corouttines များကိုအောက်ပါအခြေအနေများတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုနိုင်သည်။
စွမ်းဆောင်ရည်မြင့်ကွန်ယက်ပရိုဂရမ် - Corouttines သည်ကွန်ယက်တောင်းဆိုမှုများစွာကိုထိရောက်စွာကိုင်တွယ်နိုင်ပြီးစနစ်၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုကိုတိုးတက်စေနိုင်သည်။
asynchronous tasks များ၏ serial ကွပ်မျက်: Coroutines သည်ပြတ်တောင်းပြတ်တောင်းအလုပ်များရေးသားခြင်းကိုရိုးရှင်းအောင်ပြုလုပ်နိုင်ပြီးကုဒ်ကိုရှင်းလင်းစွာဖတ်နိုင်သည်။
ထိရောက်သော protocol parsing နှင့် serialization: coroutines protocols ၏ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် serialization စဉ်အတွင်း corouttines and realize, parsing နှင့် serialization အရှိန်မြှင့်တင်ခြင်းအတွက်ခဏရပ်ပြီးပြန်လည်စတင်နိုင်သည်။
တစ် ဦး တည်းချည်ထားသောပတ် 0 န်းကျင်ရှိတစ်ပြိုင်နက်တည်းကအကောင်အထည်ဖော်ခြင်းအားဖြင့် PHP Corouttines သည် System ၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်နိုင်စွမ်းကိုတိုးတက်စေပြီးအခြေအနေပြောင်းလဲခြင်းနှင့်အရင်းအမြစ်သုံးစွဲမှုကိုလျှော့ချနိုင်သည်။ developer များသည် coldators သို့မဟုတ် third-party libraries များမှတဆင့် coroutines များကိုအကောင်အထည်ဖော်နိုင်ပြီးစွမ်းဆောင်ရည်မြင့်ကွန်ယက်ပရိုဂရမ်ပရိုဂရမ်များ, SWOOLE နှင့် RETPPHP ကဲ့သို့သော Coroutine စာကြည့်တိုက်များအသုံးပြုခြင်းကိုထပ်မံလေ့လာခြင်းသည် PHP Coroutines ၏အားသာချက်များနှင့် features များကိုနက်နက်နဲနဲနားလည်ရန်ကူညီလိမ့်မည်။