php sleep()和usleep()程序暂停|设置脚本最大执行时间函数总结
php教程9年前 (2016-05-13)14340
sleep() - 延缓执行
usleep() - 以指定的微秒数延迟执行
time_nanosleep — 延缓执行若干秒和纳秒
time_sleep_until() - 使脚本睡眠到指定的时间为止。
set_time_limit() - 设置脚本最大执行时间
sleep() - 延缓执行
说明
int sleep ( int $seconds )
程序延迟执行指定的 seconds 的秒数。
参数:seconds 暂停的秒数。
返回值: 成功时返回 0,错误时返回 FALSE。
如果函数的调用被一个信号中止,sleep() 会返回一个非零的值。在Windows上,该值总是 192(即Windows API常量WAIT_IO_COMPLETION的值)。其他平台上,该返回值是剩余未sleep的秒数。
错误/异常: 如果指定的 seconds 是负数,该函数会产生一个 E_WARNING 级别的错误。
例子
3 | echo date ( 'h:i:s' ) . "\n" ; |
7 | echo date ( 'h:i:s' ) . "\n" ; |
该例子会在休眠10秒后输出。
05:31:23
05:31:33
usleep() - 以指定的微秒数延迟执行
说明
void usleep ( int $micro_seconds )
以指定的微秒数延缓程序的执行。
参数: micro_seconds 暂停的时间以微秒计。1微秒(micro second)是百万分之一秒。
返回值: 没有返回值。
例子
3 | echo date ( 'h:i:s' ) . "\n" ; |
7 | echo date ( 'h:i:s' ) . "\n" ; |
以上例程会输出:
11:13:28
11:13:30
time_nanosleep — 延缓执行若干秒和纳秒
说明
mixed time_nanosleep ( int $seconds , int $nanoseconds )
程序延缓执行指定数量的 seconds 和 nanoseconds。
参数: seconds 必须是一个非负整数。
nanoseconds 必须是一个小于1亿的非负整数。
返回值: 成功时返回 TRUE, 或者在失败时返回 FALSE。
如果延迟被中断,一个关联数组会返回,内容为:
seconds - 延迟剩余未执行的秒数
nanoseconds - 延迟剩余未执行的纳秒数
例子
03 | if (time_nanosleep(0, 500000000)) { |
04 | echo "Slept for half a second.\n" ; |
08 | if (time_nanosleep(0, 500000000) === true) { |
09 | echo "Slept for half a second.\n" ; |
13 | $nano = time_nanosleep(2, 100000); |
16 | echo "Slept for 2 seconds, 100 microseconds.\n" ; |
17 | } elseif ( $nano === false) { |
18 | echo "Sleeping failed.\n" ; |
19 | } elseif ( is_array ( $nano )) { |
20 | $seconds = $nano [ 'seconds' ]; |
21 | $nanoseconds = $nano [ 'nanoseconds' ]; |
22 | echo "Interrupted by a signal.\n" ; |
23 | echo "Time remaining: $seconds seconds, $nanoseconds nanoseconds." ; |
time_sleep_until() - 使脚本睡眠到指定的时间为止。
说明
bool time_sleep_until ( float $timestamp )
使脚本睡眠到指定的 timestamp。
参数: timestamp将脚本唤醒的时间戳。
返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。
错误/异常: 如果设定的 timestamp 为过去的时间,脚本将会产生一个 E_WARNING 级别的错误。
例子
3 | var_dump(time_sleep_until(time()-1)); |
5 | var_dump(time_sleep_until(microtime(true)+0.2)); |
set_time_limit() - 设置脚本最大执行时间
说明
void set_time_limit ( int $seconds )
设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,或者是在php.ini的max_execution_time被定义的值,如果此值存在。
当此函数被调用时,set_time_limit()会从零开始重新启动超时计数器。换句话说,如果超时默认是30秒,在脚本运行了了25秒时调用 set_time_limit(20),那么,脚本在超时之前可运行总时间为45秒。
参数: seconds 最大的执行时间,单位为秒。如果设置为0(零),没有时间方面的限制。
返回值: 没有返回值。
注释 :
Warning
当php运行于安全模式时,此功能不能生效。除了关闭安全模式或改变php.ini中的时间限制,没有别的办法。