PHP代码解释

时间:2011-09-21 10:58:20

标签: php

任何人都可以向我解释 usleep 睡眠如何帮助卸载CPU。
我编写了如下示例代码。

while (1) // check if the data file has been modified 
{
  usleep(10000); // sleep 10ms to unload the CPU**
  clearstatcache();
  $currentmodif = filemtime($filename);
}

3 个答案:

答案 0 :(得分:2)

如果你运行usleep(),CPU就不会花时间等待。
相反,它将设置一个计时器并在其他线程/程序上使用额外的时间。

如果你编写了大量工作来消耗CPU时间的代码,那么CPU将会努力工作,忽略其他任务,因为它认为它正在做有用的工作。
如果您使用usleep CPU(实际上是操作系统)知道没有什么有用的事情可以优先考虑其他工作。

答案 1 :(得分:0)

想象一下,你必须等待8个小时才能举办一些活动 你有两个选择:

  • 每秒钟看一下手表
  • 8小时后设置闹钟并进入睡眠状态或做其他事情

所以sleep()usleep()是第二种变体。

答案 2 :(得分:0)

而不是这样做:http://www.php.net/inotify

请务必使用stream_set_blocking()打开阻止模式 - 这样您在等待时根本不会使用任何CPU。