လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ပိုမိုတည်ငြိမ်သောမဲရုံစနစ်အောင်မြင်ရန် Time_Nanosleep ကိုသုံးပါ

ပိုမိုတည်ငြိမ်သောမဲရုံစနစ်အောင်မြင်ရန် Time_Nanosleep ကိုသုံးပါ

gitbox 2025-05-26

PHP တွင်မဲရုံစနစ်ကိုအကောင်အထည်ဖော်သည့်အခါအသုံးများသောနှောင့်နှေးမှုများကို အသုံးပြု. အိပ်စက်ခြင်း () သို့မဟုတ် USEEP () ဖြစ်သည်။ သို့သော်ဤနှစ်ခုသည်တိကျမှန်ကန်မှုနှင့်တည်ငြိမ်မှုတွင်အထူးသဖြင့်မြင့်မားသောကြိမ်နှုန်းနှင့်ရေငုပ်ခြင်းအခြေအနေများတွင်အကန့်အသတ်ရှိသည်။ ဤဆောင်းပါးသည် Php Betture function time_nanosleep () ကိုပိုမိုတည်ငြိမ်ပြီးတိကျသောမဲရုံစနစ်ရရှိရန်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။

time_nanosleep ကိုဘာကြောင့်ရွေးချယ်ရတာလဲ။

PHP 5.0.0 ပြီးနောက် Time_Nanosleep () သည် function အသစ်တစ်ခုဖြစ်သည်။ developer များသည် အိပ်စက်ခြင်း (စက္ကန့် (စက္ကန့်) နှင့် USEEP (MicroSeconds) ထက်ပိုမိုမြင့်မားသောတိကျမှန်ကန်မှုကို nanoseconds များနှောင့်နှေးစေနိုင်သည်။ ၎င်း၏လက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool time_nanosleep(int $seconds, int $nanoseconds)
  • $ စက္ကန့် စက္ကန့်၏နံပါတ်ကိုကိုယ်စားပြုပြီးအနုတ်လက်ခဏာမဟုတ်သောကိန်းဖြစ်ရမည်

  • $ nanoseconds သည် 0 မှ 999,999999999999999999999999999999999999999999999999999 မှ TANOSESECONSTS ကိုကိုယ်စားပြုသည်

USEEEP () time_nanosleep နှင့်နှိုင်းယှဉ်ပါကပိုမိုမြင့်မားသောအချိန်တိကျမှန်ကန်မှုကိုထောက်ပံ့ပေးပြီးကွဲပြားခြားနားသော operating system များတွင်ပိုမိုကျွမ်းကျင်စွာလုပ်ဆောင်သည်။

မဲရုံဥပမာ

အောက်ဖော်ပြပါစဉ်က 0 န်းကျင် 100 မီလီစက္ကန့်များ (I.E..1 စက္ကန့်စက္ကန့်) ကိုတည်ငြိမ်စေရန် (I.E..1 စက္ကန့်စက္ကန့်) ကိုရရှိရန်အတွက်အောက်ပါတို့သည်ရိုးရိုးရွှေ့ကြေးကိုပြသသည်။

 <?php

while (true) {
    // မဲရုံတောင်းဆိုမှုများကိုတုပ
    $response = file_get_contents("https://gitbox.net/api/check_status");

    // ထုတ်ယူခြင်းအချက်အလက်များကိုထုတ်ယူခြင်း
    echo "မဲရုံများ:" . $response . PHP_EOL;

    // stated စောင့်ဆိုင်း100မီလီစက္ကန့်(0စက်ဏန့် + 100,000,000纳စက်ဏန့်)
    time_nanosleep(0, 100000000);
}

?>

ဤဥပမာတွင်မဲရုံ 0 င်မှုသည်တစ်စက္ကန့်လျှင်ရွေးကောက်ပွဲ 10 ခုအထိဖြစ်သည်။ time_nanosleep () , နှောင့်နှေးအချိန်ကပိုမိုတိကျသည်, ရိုးရာ USEEP () သည် မြင့်မားသောဝန်များ၌ဖြစ်ပေါ်နိုင်သည့်အချိန်ကိုရှောင်ရှားရန်အချိန်နှောင့်နှေးအချိန်က ပို. တိကျသည်။

time_nanosleep ၏အမှားအမှား

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

 <?php

function stableSleep(int $seconds, int $nanoseconds) {
    while (true) {
        $result = time_nanosleep($seconds, $nanoseconds);
        if ($result === true) {
            break;
        }
        // ကျန်အချိန်များအတွက်အိပ်ပါ
        $seconds = $result['seconds'];
        $nanoseconds = $result['nanoseconds'];
    }
}

while (true) {
    $response = file_get_contents("https://gitbox.net/api/check_status");
    echo "မဲရုံများ:" . $response . PHP_EOL;

    stableSleep(0, 100000000); // 100ms
}

?>

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

ထိရောက်မှုတိုးတက်စေရန် asynchronous သို့မဟုတ် multi- ချည်ပေါင်းစပ်ခြင်း

Time_Nanosleep () သည် တိကျသောနှောင့်နှေးမှုများကိုအာမခံချက်ပေးသော်လည်းမဲရုံတောင်းဆိုမှုများတွင်ကွန်ယက်တောင်းဆိုမှုများတွင်ပါ 0 င်ပါကမဲဆန္ဒရှင်များအနေဖြင့်အကန့်အသတ်ရှိနေသေးသည်။ Folloindchronous တောင်းဆိုမှုသို့မဟုတ် Multimchreading (ဥပမာ Curl_multi_ * or or or or or or or or or or oreverse extensions များဖြင့်အသုံးပြုခြင်း) ဖြင့်မဲရုံများကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်အကြံပြုသည်။

အကျဉ်းချုပ်

  • TIME_NANOSESEEP () သည် pull-pull-pullings လိုအပ်ချက်များကိုသင့်တော်သော nanosecond-level တိကျသော Precision နှောင့်နှေးမှုကိုပေးသည်

  • မဲရုံတည်ငြိမ်မှုကိုသေချာစေရန် System Signal Interrupts ကိုလုပ်ဆောင်ရန် Return Value နှင့်ပေါင်းစပ်ထားသည်

  • ကွန်ယက်တောင်းဆိုမှုနှောင့်နှေးမှုရှည်လျားသောအခါ၎င်းကို asynchronous သို့မဟုတ် multi-threaded ယန္တရားများနှင့်ပေါင်းစပ်။ အသုံးပြုရန်အကြံပြုသည်

ဆင်ခြင်တုံတရား ကို အသုံးပြု. PHP Pransper စနစ်၏တည်ငြိမ်မှုနှင့်တိကျမှုသည်သိသိသာသာတိုးတက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။