为什么超时不会停止无限循环

时间:2016-09-16 07:22:33

标签: php apache timeout infinite-loop

为什么php或apache不会停止无限循环?

while (true)
{
    sleep(5);
}

Apache默认TimeOut = 300。 Php - max_execution_time = 30

但是这个循环可以工作一小时。为什么呢?

1 个答案:

答案 0 :(得分:0)

由于sleep()发生在脚本之外,因此它不会影响脚本的最长执行时间。

  

注意:set_time_limit()函数和配置指令   max_execution_time仅影响脚本的执行时间   本身。花在执行之外的活动上的任何时间   使用system(),sleep()进行系统调用等脚本   确定时不包括函数,数据库查询等   脚本运行的最长时间。   http://php.net/manual/en/function.sleep.php