美文网首页
php中的sleep和usleep(延缓执行)

php中的sleep和usleep(延缓执行)

作者: 简简天天 | 来源:发表于2019-07-26 00:49 被阅读0次

sleep

说明

sleep ( int $seconds ) : 程序延迟执行指定的 seconds 的秒数。

参数

seconds 暂停的秒数

返回值

成功时返回 0,错误时返回 FALSE。

如果函数的调用被一个信号中止,sleep() 会返回一个非零的值。在Windows上,该值总是 192(即Windows API常量WAIT_IO_COMPLETION的值)。其他平台上,该返回值是剩余未sleep的秒数。

错误/异常

如果指定的 seconds 是负数,该函数会产生一个 E_WARNING 级别的错误。

范例

<?php

// current time
echo date('h:i:s') . "\n";

// sleep for 10 seconds
sleep(10);

// wake up !
echo date('h:i:s') . "\n";

?>

该例子会在休眠10秒后输出。

05:31:23
05:31:33

usleep

usleep — 以指定的微秒数延迟执行

说明

usleep ( int $micro_seconds ) : void
以指定的微秒数延缓程序的执行。

参数

micro_seconds
暂停的时间以微秒计。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";

?>

以上例程会输出:

11:13:28
11:13:30

注意事项

php代码的执行是单线程的,php使用php-fpm(Fastcgi 进程管理器) 负责进程的分配和管理,如果php-fpm进程数量达到了配置的最大值pm.max_children ,剩下的请求只能排队,sleep() 函数将很容易阻塞住一个进程,甚至很容易把整个网站的请求被阻塞住。

if($_GET['block'] ==1){
    echo 'sleep...';
    sleep(30);
}
echo 'end...'.date('Y-m-d H:i:s');

相关文章

网友评论

      本文标题:php中的sleep和usleep(延缓执行)

      本文链接:https://www.haomeiwen.com/subject/pyxlrctx.html