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

Time_Nanosleep ကို Progress Bars နှင့်အတူအသုတ်လုပ်ပါ

gitbox 2025-05-29

PHP တွင် Batch Operations ကိုဖျော်ဖြေတင်ဆက်သည့်အခါ, အပြောင်းအလဲနဲ့လုပ်ငန်းစဉ်အတွင်းအသုံးပြုသူအားတိုးတက်မှုပြရန်လိုအပ်ကြောင်းကိုသင်ကြုံတွေ့ရလေ့ရှိသည်။ Time_Nanosleep function ကိုအသုံးပြုပါမြင့်မားသောအိပ်စက်ခြင်းထိန်းချုပ်မှုကိုရရှိရန်အတွက် Time_Nanosleep function ကိုသုံးပါ။ ဤဆောင်းပါးသည် time_nanosleep ကို အသုံးပြုနည်းကို Time_Nanosleep ကိုအသုံးပြုနည်းကို Gatch Processing လုပ်ငန်းများနှင့်အတူအသုတ်လုပ်ခြင်းလုပ်ငန်းများနှင့်ပေါင်းစပ်ရန်ရိုးရှင်းသော command line progress bar နှင့်ပေါင်းစပ်ပြီးအသုံးပြုရမည်။


1 ။ time_nanosleep မှနိဒါန်း

Time_nanosleep သည် PHP တွင်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်ပရိုဂရမ်ကိုဒုတိယနှင့် nanosecond အဆင့်တွင်ခေတ္တရပ်တန့်ရန်ခွင့်ပြုသည်။

 bool time_nanosleep(int $seconds, int $nanoseconds);
  • $ စက္ကန့် - Integer စက္ကန့်

  • $ nanoseconds : nanoseconds, 1 စက္ကန့် = 1 ဘီလီယံ nanoseconds

အိပ်စက်ခြင်း နှင့် USLEEP နှင့်နှိုင်းယှဉ်လျှင် Time_Nanosleep သည် Time_Nanosleep သည်ပိုမိုမြင့်မားသောတိကျမှုအချိန်ကိုထိန်းချုပ်ထားသည်။

2 ။ တိုးတက်မှုအရက်ဆိုင်အကောင်အထည်ဖော်ရန်စိတ်ကူးများ

  1. 100 ကဲ့သို့သောအပြောင်းအလဲများကိုအဆင့်မြှင့်တင်မှုအရေအတွက်ကိုသတ်မှတ်ပါ။

  2. အလုပ်၏တစ်စိတ်တစ်ပိုင်းကိုလုပ်ဆောင်ပြီးနောက် update တိုးတက်မှု bar display ကိုပြသသည်။

  3. အဆင့်တစ်ခုစီ၏လုပ်ဆောင်မှုအချိန်ကို Time_NANOSESEP မှလွယ်ကူစွာသရုပ်ပြရန်အတွက် time_nanosleep မှတဆင့် simulated သည်။

3 ။ နမူနာကုဒ်

အောက်ပါကုဒ်က command line progress bar ကိုအကောင်အထည်ဖော်ရန် Time_Nanosleep ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။

 <?php
$totalSteps = 50; // အဆင့်စုစုပေါင်းအရေအတွက်
$barWidth = 40;   // တိုးတက်မှုဘားအကျယ်

echo "တစ်သုတ်စစ်ဆင်ရေးစတင်ပါ...\n";

for ($i = 1; $i <= $totalSteps; $i++) {
    // Task Processing Time ကိုတုပ,အိပ်နေခြင်း50မီလီစက္ကန့်
    time_nanosleep(0, 50 * 1000000); 

    // တိုးတက်မှုရာခိုင်နှုန်းကိုတွက်ချက်ပါ
    $progress = $i / $totalSteps;
    $filledLength = round($barWidth * $progress);

    // တိုးတက်မှုဘား string ကိုတည်ဆောက်ရန်
    $bar = str_repeat("=", $filledLength) . str_repeat(" ", $barWidth - $filledLength);

    // output တိုးတက်မှုဘားနှင့်ရာခိုင်နှုန်း,အသုံးပြု "\r" နောက်ကျောလိုင်း၏အစ,dynamic updates များကိုအကောင်အထည်ဖော်ပါ
    printf("\r[%s] %.2f%%", $bar, $progress * 100);
    flush();
}

echo "\nအသုတ်စစ်ဆင်ရေးပြီးစီးခဲ့သည်!\n";

code parsing

  • ပရိုဂရမ်ကို 50 မီလီမီတာနှုန်းဖြင့်ခေတ္တရပ်တန့်ရန် Time_Nanosleep (0, 500000000000000000000000000000) ကို သုံးပါ။

  • progress bar ၏တက်ကြွသောလန်းဆန်းမှုကိုရရှိရန်လိုင်း၏အစသို့ပြန်သွားရန်ဇာတ်ကောင်များကိုထိန်းချုပ်ရန် အပိုင်းကို သုံးပါ။

  • PrintF မှ ရလဒ်များသည်တိုးတက်မှုအရက်ဆိုင်များနှင့်ရာခိုင်နှုန်းကို format လုပ်ထားသည်။

  • flush () output ကိုအချိန်မီပြသကြောင်းသေချာ။

4 ။ စဉ်းစားတွေးခေါ်

  • အကယ်. အသုတ်လုပ်ငန်းသည်စစ်ဆင်ရေးတစ်ခုဖြစ်ပါကအိပ်စက်ခြင်းသည်တိကျသောအလုပ် Execute Logic ဖြင့်အစားထိုးနိုင်သည်။

  • output logs သို့မဟုတ်အမှားမက်ဆေ့ခ်ျများနှင့်အတူပေါင်းစပ်ထားပြီး, debugging နှင့်စောင့်ကြည့်လေ့လာရန်ပိုမိုအထောက်အကူဖြစ်ပါတယ်။

  • $ Barwidth နှင့် Sleep အချိန်သည်တိုးတက်မှုဘား၏မျက်နှာပြင်အကျိုးသက်ရောက်မှုကိုထိန်းချုပ်ရန်နှင့်မြန်နှုန်းကိုထိန်းချုပ်ရန်ချိန်ညှိနိုင်သည်။

5 ။ ရည်ညွှန်းအရင်းအမြစ်များ

time_nanosleep နှင့်ပတ်သက်သောတရားဝင်စာရွက်စာတမ်းများကိုတွေ့နိုင်သည်။

 https://gitbox.net/manual/en/function.time-nanosleep.php