PHP တွင် time_nanosleep function ကိုပရိုဂရမ်ကိုသတ်မှတ်ထားသောစက္ကန့်ပိုင်းနှင့် nanoseconds ကိုခေတ္တရပ်တန့်စေရန်အသုံးပြုသည်။ ရိုးရာ အိပ်စက်ခြင်း လုပ်ငန်းများနှင့်နှိုင်းယှဉ်လျှင်၎င်းသည်ပိုမိုမြင့်မားသောတိကျစွာနှောင့်နှေးထိန်းချုပ်မှုကိုပေးစွမ်းသည်။ အထူးသဖြင့်အချိန်တိကျမှုလိုအပ်ချက်များ, ဤဆောင်းပါးသည်သင့်အား Time_Nanosleep function ၏နောက်ခံအကောင်အထည်ဖော်မှုယန္တရားကိုပိုမိုနက်ရှိုင်းစွာနားလည်ရန်နှင့်နမူနာကုဒ်မှတဆင့်အသုံးပြုမှုကိုကျွမ်းကျင်စွာကူညီပေးပါမည်။
Time_Nanosleep function ၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
bool time_nanosleep(int $seconds, int $nanoseconds)
$ စက္ကန့် သည်ခေတ္တရပ်တန့်ရန်စက္ကန့်အရေအတွက်နှင့်အနုတ်လက်ခဏာမဟုတ်သောကိန်းဖြစ်ရမည်။
$ nanoseconds သည် 0 မှ 999,999999 အထိအပို nanoseconds အပို nanoseconds ဖြစ်သည်။
function ကိုအောင်မြင်သောအခါ စစ်မှန်သော ပြန်လာ။ အကယ်. ခေတ္တနားကပြတ်တောက်သွားရင်ကျန်နေတဲ့အချိန်မှာပါဝင်တဲ့နေရာတစ်ခုကိုပြန်ပို့ပေးမှာပါ။
PHP ၏ Time_Nanosleep သည် PHP ကိုယ်တိုင်ကလုံးဝအကောင်အထည်ဖော်ခြင်းမဟုတ်ပါ, သို့သော်အခြေခံလည်ပတ်မှုစနစ်မှစနစ်ခေါ်ဆိုမှုများပေါ်တွင်မူတည်သည်။ ၎င်းသည်အဓိကအားဖြင့် posix စံချိန်စံညွှန်းတွင်အဓိကအားဖြင့် nonosleep function ကိုအဓိကထားသည်။ ၎င်းကို UNIX ကဲ့သို့သောစနစ်များတွင်ထောက်ပံ့သည်။
nonosleep function သည် program ကိုသတ်မှတ်ထားသောစက္ကန့်ပိုင်းနှင့် nanoseconds များကိုကွပ်မျက်ရန်ခွင့်ပြုသည်။ အခြေခံနိယာမသည်အောက်ပါအတိုင်းဖြစ်သည် -
System ခေါ်ဆိုမှုများသည် kernel ပြည်နယ်ကိုရိုက်ထည့်ပါ PHP သည် Time_nanosleep ဟုခေါ်သောအခါနောက်ခံအလွှာသည် operating system သို့ဆိုင်းငံ့ထားသောတောင်းဆိုမှုကိုထုတ်ပေးရန် Cities မှအကောင်အထည်ဖော်သည့် Noosleep function ကိုခေါ်ဆိုလိမ့်မည်။
Kernel Scheduling Pause <br> Kernel သည်တောင်းဆိုမှုကိုလက်ခံပြီးနောက်၎င်းသည်သတ်မှတ်ထားသောအချိန်အတွက်လက်ရှိလုပ်ငန်းစဉ်ကိုဆိုင်းငံ့ထားမည်ဖြစ်ပြီး CPU သည်အခြားဖြစ်စဉ်များကို အသုံးပြု. သယံဇာတအသုံးချမှုစွမ်းရည်ကိုမြှင့်တင်ပေးလိမ့်မည်။
အချိန်ရောက်လာပြီးနောက်လုပ်ငန်းစဉ်ကိုပြန်လည်ရယူပါ အချိန်ရောက်လာသောအခါ kernel သည်လုပ်ငန်းစဉ်ကိုနှိုးပြီး PHP code ကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။
processing signal ကြားဖြတ် <br> <br> အကယ်. လုပ်ငန်းစဉ်သည်စောင့်ဆိုင်းနေစဉ်အတွင်း (ထိုကဲ့သို့သောကြားဖြတ်ကဲ့သို့) အချက်ပြမှု (ဥပမာ) ကိုလက်ခံရရှိပါက noosleep သည် ကြိုတင်လာပြီးကျန်ရှိနေသေးသောစောင့်ဆိုင်းနေသည့်အချိန်ကိုအကြောင်းကြားလိမ့်မည်။
Windows စနစ်များတွင် Nanosleep မရှိခြင်းကြောင့် PHP သည်အိပ်စက်ခြင်းသို့မဟုတ်အိပ်ပျော်ခြင်းလုပ်ငန်းများကိုညီမျှသော အိပ်စက်ခြင်း သို့မဟုတ် အိပ်ပျော်ခြင်း လုပ်ငန်းများကိုခေါ်ဆိုသည်။
PHP ၏ Time_Nanosleep သည် CORATED ကို၎င်း၏တိုးချဲ့ခြင်း module တွင်အမှန်တကယ်အကောင်အထည်ဖော်ပြီးအဓိကခေါ်ဆိုမှုများသည်အောက်ပါ Pseudo-Code နှင့်ဆင်တူသည်။
PHP_FUNCTION(time_nanosleep)
{
zend_long sec, nsec;
struct timespec req, rem;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ll", &sec, &nsec) == FAILURE) {
return;
}
if (sec < 0 || nsec < 0 || nsec > 999999999) {
zend_argument_value_error(1, "seconds must be >= 0 and nanoseconds between 0 and 999999999");
RETURN_FALSE;
}
req.tv_sec = sec;
req.tv_nsec = nsec;
if (nanosleep(&req, &rem) == 0) {
RETURN_TRUE;
} else {
array_init(return_value);
add_assoc_long(return_value, "seconds", rem.tv_sec);
add_assoc_long(return_value, "nanoseconds", rem.tv_nsec);
}
}
ဒီကုဒ်ထဲမှာ:
nanosleep သည်သော့ချက်စနစ်ခေါ်ဆိုမှုဖြစ်သည်။
အကယ်. 0 ကိုအောင်မြင်စွာပြန်ပို့လျှင် PHP သည် မှန်ကန်သည် ။
signal ကိုပြတ်တောက်သွားလျှင်ကျန်ရှိသောအချိန် array ကိုပြန်လာသည်။
<?php
echo "စတင်ချိန်:" . microtime(true) . "\n";
// ခေတ္တရပ်ဆိုင်းခြင်း 1 စက်ဏန့် 500 毫စက်ဏန့်
$result = time_nanosleep(1, 500000000);
if ($result === true) {
echo "ခေတ္တရပ်ဆိုင်းခြင်း成功\n";
} else {
echo "ခေတ္တရပ်ဆိုင်းခြင်း被中断,ကျန်ရှိသောအချိန်:" . $result['seconds'] . " စက်ဏန့် " . $result['nanoseconds'] . " 纳စက်ဏန့်\n";
}
echo "အချိန်ကုန်ဆုံး:" . microtime(true) . "\n";
?>
ဤကုဒ်ကို run ပါ။ ပရိုဂရမ်သည် 1.5 စက္ကန့်ခန့်ခေတ္တရပ်တန့်လိမ့်မည်ဟုသင်တွေ့နိုင်သည် ။
Time_Nanosleep သည် အကြွင်းမဲ့တိကျမှန်ကန်မှုကိုမအာမခံနိုင်ပါ။
Nanosecond parameter သည်အမြင့်ဆုံးတန်ဖိုးသည် 999,9999999 မကျော်လွန်နိုင်ပါ။
Windows ပလက်ဖောင်းများတွင်တိကျမှန်ကန်မှုသည်အတော်အတန်နိမ့်ကျပြီးအဓိကအားဖြင့် system timer ပေါ်တွင်မူတည်သည်။
ဤလုပ်ဆောင်ချက်သည်မြင့်မားသောတိကျသောအချိန်နှင့်တိုတောင်းသောအချိန်နှင့်တိုတောင်းသောထိန်းချုပ်မှုအတွက်သင့်တော်သော်လည်း Real-time operating system ၏ခက်ခဲသောအချိန်နှင့်တပြေးညီ Time Timer အတွက်အစားထိုးခြင်းမဟုတ်ပါ။
Time_Nanosleep function သည် PPP အတွက် interface တစ်ခုဖြစ်ပြီး operating system ၏မြင့်မားသောအိပ်စက်ခြင်းယန္တရားကိုရယူရန်အတွက် interface တစ်ခုဖြစ်သည် ။ ၎င်းသည် developer များကိုဒုတိယနှင့် nanosecond အဆင့်များ၌အချိန်ထိန်းချုပ်နိုင်သောစွမ်းရည်များဖြင့်ပြုလုပ်နိုင်သည်။ ၎င်း၏အခြေခံအကောင်အထည်ဖော်မှုကိုနားလည်ခြင်းအားဖြင့်၎င်းသည်အမူအကျင့်ဆိုင်ရာဝိသေသလက္ခဏာများနှင့်လုပ်ဆောင်ချက်များ၏အသုံးပြုမှုဆိုင်ရာကန့်သတ်ချက်များကိုပိုမိုနားလည်ရန်ကူညီသည်။
PHP လုပ်ဆောင်ချက်များကိုနောက်ခံအကောင်အထည်ဖော်မှုကိုထိုးထွင်းသိမြင်ရန်, တရားဝင် PHP source code သို့မဟုတ်ဆက်စပ် operating systems ၏ nanosleep စာရွက်စာတမ်းများကိုသင်ရည်ညွှန်းနိုင်သည်။
ဤအရင်းအမြစ်များမှတစ်ဆင့် PHP သည်ထိရောက်သောအချိန်စီမံခန့်ခွဲမှုရရှိရန်အတွက် PHP စနစ်နှင့်မည်သို့နီးကပ်စွာအလုပ်လုပ်သည်ကိုကျွန်ုပ်တို့ထပ်မံလေ့လာနိုင်သည်။