PHP တွင်နှောင့်နှေးနေသည့်စစ်ဆင်ရေးများတွင်များသောအားဖြင့် အိပ်စက်ခြင်း () နှင့် USEEP () functions များကိုအသုံးပြုသည်။ သို့သော်ပိုမြင့်သောတိကျစွာထိန်းချုပ်မှုလိုအပ်သည့်ဖြစ်ရပ်များအတွက် PHP သည် time_nanosleep () function ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည် PHP တွင်မြင့်မားသောနှောင့်နှေးမှုကိုရရှိရန်အတွက်အသုံးပြုမှု, paramanosleep ၏လက်တွေ့ကျသောဖော်ပြချက်နှင့်လက်တွေ့ကျသောလျှောက်လွှာဥပမာအသေးစိတ်ကိုအသေးစိတ်ဖော်ပြထားသည်။
Time_Nanosleep () PHP မှထောက်ပံ့သော function သည် 5.0.0 ကတည်းက scripts များကိုသတ်မှတ်ထားသည့်စက္ကန့်ပိုင်းနှင့် nanoseconds ဆက်ခံရန်ခွင့်ပြုသည်။ အိပ်စက်ခြင်း နှင့်မတူသည်မှာကိန်းဂဏန်းများကိုစက္ကန့်ပိုင်းသာခေတ္တရပ်တန့်စေပြီး Time_Nanosleep () သည် nanosecond-level pauses များကိုသာရပ်တန့်စေပြီးနှောင့်နှေးမှုများကိုပိုမိုတိကျမှန်ကန်စေသည်။
bool time_nanosleep(int $seconds, int $nanoseconds)
$ စက္ကန့် - စက္ကန့်အနည်းငယ်သာခေတ္တရပ်တန့်ပြီးအနုတ်လက်ခဏာမဟုတ်သောကိန်းဂဏန်း။
$ nanoseconds - 0 မှ 999,999999 အထိအထိ nanoseconds အရေအတွက်ကိုဆိုင်းငံ့ထားသည်။
နှောင့်နှေးခြင်းသည်အောင်မြင်မှုရရန်ညွှန်ကြားချက်ကိုညွှန်ပြရန် function သည် မှန်ကန် ပြီးပျက်ကွက်ပါက မှားယွင်းစွာ ပြန်ပို့သည်။ အလယ်၌အချက်ပြမှုဖြင့်ကြားဖြတ်လျှင်, function ကိုကျန်စက္ကန့်များနှင့် nanoseconds ပါ 0 င်သောခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။
<?php
// နေှာင့်နေှး1စက်ဏန့်500毫စက်ဏန့်(အခုချက်ချင်း1.5စက်ဏန့်)
$seconds = 1;
$nanoseconds = 500 * 1000 * 1000; // 500毫စက်ဏန့်转纳စက်ဏန့်
if (time_nanosleep($seconds, $nanoseconds)) {
echo "နေှာင့်နေှး完成!\n";
} else {
echo "နေှာင့်နေှး被中断。\n";
}
?>
အပေါ်ကဥပမာမှာ script ကိုဆက်တိုက်အလုပ်မလုပ်မီ 1.5 စက္ကန့်ကြာလိမ့်မည်။
အကယ်. နှောင့်နှေးနေစဉ်အတွင်းအချက်ပြမှုကိုလက်ခံရရှိပါက Time_Nanosleep () သည် ဆက်လက်မစောင့်နိုင်သော်လည်းကျန်ရှိသောအချိန်ကိုပြန်ပို့လိမ့်မည်။ Swe-Catch ကိုနှိပ်ပြီး ပိုမိုတိကျသောထိန်းချုပ်မှုရရှိရန်အတွက် Return Value ကိုတရားသူကြီးများကိုတရားသူကြီးများကိုဖမ်းယူနိုင်ရန်အတွက်ဖမ်းမိနိုင်သည်။
<?php
$seconds = 5;
$nanoseconds = 0;
while (true) {
$result = time_nanosleep($seconds, $nanoseconds);
if ($result === true) {
echo "နေှာင့်နေှး结束\n";
break;
} elseif (is_array($result)) {
// နေှာင့်နေှး被中断,获取剩余时间继续နေှာင့်နေှး
$seconds = $result['seconds'];
$nanoseconds = $result['nanoseconds'];
echo "နေှာင့်နေှး被中断,ကျန်အချိန်ကိုစောင့်ဆိုင်းနေပါ...\n";
} else {
echo "နေှာင့်နေှး出错\n";
break;
}
}
?>
လုပ်ဆောင်ချက် | တခု | ဟုတ်မှန်ရေး | အမျိုးအစားပိတ်ဆို့ခြင်း |
---|---|---|---|
အိပ် () | စက်ဏန့် | ဒုတိယအပြည့်အဝ | ပိတ်ဆို့ |
USEEEP () | microseconds (တစ်စက္ကန့်တစ်သန်း၏တစ်သန်း) | microseconds | ပိတ်ဆို့ |
time_nanosleep () | nanoseconds (တစ်စက္ကန့်၏ 1 ဘီလီယံ) | nonoseconds | ပိတ်ဆို့ |
Time_Nanosleep () သည်အဆင့်မြင့်ကုန်သွယ်မှု, တိကျသောအချိန်သည် hardware untchronization, simulated hardware respons နှောင့်နှေးစသည့်အချိန်နှောင့်နှေးမှုအချိန်လိုအပ်သည်။
သင်ကန့်သတ်ချက်ကိုရှောင်ရှားရန် interface တစ်ခုဝင်ရောက်ရန် interface ကိုသုံးသောအခါသင်ခေါ်ဆိုမှုကြိမ်နှုန်းကိုထိန်းချုပ်ရန်လိုအပ်သည်ဆိုပါစို့ ။
<?php
$intervalSeconds = 0;
$intervalNanoseconds = 200 * 1000 * 1000; // 200毫စက်ဏန့်
for ($i = 0; $i < 5; $i++) {
// interface တောင်းဆိုမှုများကို Simulate
$url = "https://api.gitbox.net/v1/data";
echo "တောင်းဆိုမှု interface:$url\n";
// ဤတွင်သင်အမှန်တကယ်တောင်းဆိုမှုကုဒ်ရေးသားနိုင်ပါတယ်,ဥပမာအားဖြင့် curl သို့မဟုတ် file_get_contents
// စောင့်200毫စက်ဏန့်,မြန်မြန်တောင်းဆိုခြင်းကိုရှောင်ကြဉ်ပါ
time_nanosleep($intervalSeconds, $intervalNanoseconds);
}
?>
အထက်ပါကုဒ်တွင် code သည်လိုအပ်ချက်များနှင့်ကိုက်ညီစေရန် interface domain name ဖြင့်အစားထိုးထားသည် ။
Time_nanosleep () သည် script လုပ်ဆောင်မှုကိုပိတ်ဆို့ခြင်းနှင့်ပြတ်တောင်းပြတ်တောင်းသို့မဟုတ်ပိတ်ဆို့ခြင်းမဟုတ်သောအခြေအနေများအတွက်မသင့်တော်ပါ။
တိကျမှန်ကန်မှုသည်မြင့်မားသော်လည်းလည်ပတ်မှုစနစ်အချိန်ဇယားနှင့် PHP Execute ပတ်ဝန်းကျင်၏ကန့်သတ်ချက်များကြောင့်အနည်းငယ်သာသွေဖည်သွားနိုင်သည်။
ဖြစ်နိုင်ချေရှိသောကြားဖြတ်နှောင့်ယှက်မှုများကို signal processing နှင့်ပေါင်းစပ်ရန်အကြံပြုသည်။