sleep
說明
sleep ( int $seconds ) : 程序延遲執(zhí)行指定的 seconds 的秒數(shù)。
參數(shù)
seconds 暫停的秒數(shù)
返回值
成功時(shí)返回 0户盯,錯(cuò)誤時(shí)返回 FALSE凭迹。
如果函數(shù)的調(diào)用被一個(gè)信號(hào)中止节值,sleep() 會(huì)返回一個(gè)非零的值廊镜。在Windows上隙券,該值總是 192(即Windows API常量WAIT_IO_COMPLETION的值)男应。其他平臺(tái)上,該返回值是剩余未sleep的秒數(shù)娱仔。
錯(cuò)誤/異常
如果指定的 seconds 是負(fù)數(shù)沐飘,該函數(shù)會(huì)產(chǎn)生一個(gè) E_WARNING 級(jí)別的錯(cuò)誤。
范例
<?php
// current time
echo date('h:i:s') . "\n";
// sleep for 10 seconds
sleep(10);
// wake up !
echo date('h:i:s') . "\n";
?>
該例子會(huì)在休眠10秒后輸出牲迫。
05:31:23
05:31:33
usleep
usleep — 以指定的微秒數(shù)延遲執(zhí)行
說明
usleep ( int $micro_seconds ) : void
以指定的微秒數(shù)延緩程序的執(zhí)行耐朴。
參數(shù)
micro_seconds
暫停的時(shí)間以微秒計(jì)。1微秒(micro second)是百萬分之一秒恩溅。
返回值
沒有返回值隔箍。
范例
<?php
// Current time
echo date('h:i:s') . "\n";
// wait for 2 seconds
usleep(2000000);
// back!
echo date('h:i:s') . "\n";
?>
以上例程會(huì)輸出:
11:13:28
11:13:30
注意事項(xiàng)
php代碼的執(zhí)行是單線程的,php使用php-fpm(Fastcgi 進(jìn)程管理器) 負(fù)責(zé)進(jìn)程的分配和管理脚乡,如果php-fpm進(jìn)程數(shù)量達(dá)到了配置的最大值pm.max_children ,剩下的請(qǐng)求只能排隊(duì)蜒滩,sleep() 函數(shù)將很容易阻塞住一個(gè)進(jìn)程,甚至很容易把整個(gè)網(wǎng)站的請(qǐng)求被阻塞住奶稠。
if($_GET['block'] ==1){
echo 'sleep...';
sleep(30);
}
echo 'end...'.date('Y-m-d H:i:s');