PHP တွင် time_nanosleep () function ကိုပရိုဂရမ်သည် nanosecond တိကျများနှင့်သတ်မှတ်ထားသောအချိန်အတွက်အိပ်စက်ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်အသုံးပြုရန်အလွန်လွယ်ကူသည်။
time_nanosleep(1, 500000000); // အိပ်နေခြင်း1.5စက်ဏန့်
သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် time_nanosleep () ကို စနစ်အချက်ပြချက်များဖြင့် (ထိုကဲ့သို့သောကြားဖြတ်အချက်ပြမှုများကဲ့သို့) အနှောင့်အယှက်ဖြစ်စေနိုင်သည်။ ဤကိစ္စတွင်လုပ်ဆောင်ချက်သည် Boolean True ထက်ကျန်စက္ကန့်များနှင့် nanoseconds များပါ 0 င်သည့်ခင်းနိတ်မှုတစ်ခုသို့ထည့်သွင်းထားသည်။
Linux (သို့) Unix စနစ်များတွင်လုပ်ငန်းစဉ်များသည်အိပ်စက်ခြင်းအခြေအနေကိုနှော င့ ်ယှက်စေမည့် Sigtt, Sigte Sigterm ကဲ့သို့သော Sigtt, Sigtterm ကဲ့သို့သော Sigtt, Sigtterm ကဲ့သို့သောအချက်ပြမှုများရရှိနိုင်သည်။ PHP ကိုယ်တိုင်ကအလိုအလျောက်အိပ်စက်ခြင်းကိုအလိုအလျောက်ပြန်ကြိုးစားခြင်းမရှိပါ။ ၎င်းသည်အိပ်စက်ခြင်းအချိန်ကိုဖြစ်ပေါ်စေသည်။
time_nanosleep () အချက်ပြမှုကြောင့်ကြားဖြတ်သောအခါ၎င်းသည် စစ်မှန်သော နောက်သို့မပြန်ပါ, သို့သော်ခင်းကျင်းမှုကိုပြန်ပို့သည်။
[
'seconds' => 剩余စက်ဏန့်数,
'nanoseconds' => 剩余纳စက်ဏန့်数,
]
ဤအချက်အပေါ် အခြေခံ. ကျွန်ုပ်တို့သည်အိပ်စက်ခြင်းအချိန်ပြည့်သေချာစေရန် loop တစ်ခုကိုရေးနိုင်သည်။
function reliable_nanosleep(int $seconds, int $nanoseconds): void {
while (true) {
$result = time_nanosleep($seconds, $nanoseconds);
if ($result === true) {
// အိပ်စက်ခြင်းကိုအောင်မြင်စွာပြီးစီးခဲ့သည်
break;
}
// signal အားဖြင့်ကြားဖြတ်,$result ကျန်ရှိသောအချိန်ပါဝင်သည်
$seconds = $result['seconds'];
$nanoseconds = $result['nanoseconds'];
}
}
ဤလုပ်ဆောင်ချက်သည်အိပ်စက်ခြင်းပြည့်စုံသည်အထိကျန်ရှိနေသေးသောအိပ်စက်ခြင်းအချိန်ကိုပြန်လည်စစ်ဆေးသည်။
<?php
function reliable_nanosleep(int $seconds, int $nanoseconds): void {
while (true) {
$result = time_nanosleep($seconds, $nanoseconds);
if ($result === true) {
break;
}
$seconds = $result['seconds'];
$nanoseconds = $result['nanoseconds'];
}
}
// နမူနာ:အိပ်နေခြင်း2.3စက်ဏန့်
echo "开始အိပ်နေခြင်း\n";
reliable_nanosleep(2, 300000000);
echo "အိပ်နေခြင်း结束\n";
?>
signal processing : အကယ်. သင်၏ပရိုဂရမ်သည်အချက်ပြမှုများကိုလုပ်ဆောင်ရန်လိုအပ်ပါက pcntl_signal () ကို ပိုမိုကျိုးကြောင်းဆီလျော်သောအပြုအမူနှင့်ပေါင်းစပ်ရန်အချက်ပြ processing function ကိုသတ်မှတ်ရန်အကြံပြုသည်။
အခြားရွေးချယ်စရာ - သင်၏ System ပတ် 0 န်းကျင်သည် USLEEP () သို့မဟုတ် အိပ်စက်ခြင်းကို ထောက်ပံ့ပါက၎င်းတို့ကိုလည်းအသုံးပြုနိုင်သည်, သို့သော်၎င်းတို့သည်တိကျမှုနည်းပါးသည်။
PHP နှင့်ဆက်စပ်သောသတင်းအချက်အလက်များအတွက်အသေးစိတ်စာရွက်စာတမ်းများနှင့်ဥပမာများအတွက် Gitbox.Net/php-Docs များကိုဖတ်ရှုပါ။