2011-09-21 5 views
1

아무도 나를 설명 할 수있다 흘리 또는 수면는 CPU를 언로 드하는 데 도움이됩니다.
다음과 같이 샘플 코드를 작성했습니다. 당신이 usleep()을 실행하면PHP 코드 설명

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

어떤 조건에서 루프를 종료합니까? – zerkms

+0

'언로드'되지 않습니다. Sleep은 프로세스를 잠자기 상태로 만들고 다른 프로세스를 실행할 수있게하므로 프로세스가 CPU의 시간 조각을 100 % 사용하지 않습니다 (지속 시간은 다양한 요인에 따라 다릅니다). 이것은 멀티 태스킹이 이루어지는 방법입니다. –

+0

http://linux.die.net/man/3/usleep – mario

답변

2

CPU는 주변의 대기 시간을 소비하지 않습니다.
대신 타이머를 설정하고 다른 스레드/프로그램에서 여분의 시간을 사용합니다.

CPU 시간을 없애기 위해 많은 작업을하는 코드를 작성하면 CPU가 다른 작업을 무시하면서 유용하게 사용하고 있다고 생각하기 때문에 열심히 노력할 것입니다.
usleep을 사용하는 경우 CPU (실제로는 OS)는 수행 할 유용한 것이 없음을 알고 있으며 다른 작업의 우선 순위를 지정합니다.

0

일부 이벤트의 경우 8 시간을 기다려야한다고 가정 해보십시오.
는 당신이 개 선택할 수 있습니다 시계에서

  • 보기 각 초
  • 세트 경보 8시간 후를 잠 또는

그래서 sleep()usleep() 두 번째 변종 다른 뭔가를 이동합니다. 그 대신이를 사용하는 일을

0

: http://www.php.net/inotify

블록 모드를 켭니다 stream_set_blocking()를 사용하십시오 - 당신이 기다리는 동안 전혀 CPU를 사용하지 않습니다 그런 식으로.