나는 소켓 서버가 들어오는 데이터에 대한 연결을 듣고 입력이 일시 중지되는 동안 나가는 데이터를 쓰고있다. 이것은 루프에 있으므로 다른 프로세스가 CPU 시간을 가질 수 있도록하기 위해 sleep
호출을하고 있습니다. 프로세스가 입력을 즉시 기다리지 않고 있습니다.sleep과 usleep은 PHP 내부에서 다르게 동작합니까?
이걸 알고 있는데 sleep
이긴하지만 usleep
도 OS에 실행을 반환합니까? 나는 전통적으로 sleep
syscall 만 초를 허용한다는 것을 알고 있기 때문에 나는 의심 스럽다. 10 년 전에 프로그래밍 한 C 프로그래밍에 대해 읽은 아주 오래된 책은 본질적으로 무한 루프를 만드는 것과 같은 해킹과 관련된 해킹과 관련이 있다고 말했다. sleep
하지만 다른 프로세스에 CPU 시간을 양보하지 않습니다. (이 책이 잘못되었거나, 난 그냥 말한 무엇을 말하고 더 이상 정확하지 않을 수 있습니다.) 나는 리눅스를 사용하고
, PHP 버전 5.6 및 7.1
당신에게
OS 수준으로 판단됩니다. http://man7.org/linux/man-pages/man3/usleep.3.html – ceejayoz
테스트 할 수 있습니다. 'usleep (10000)'을 사용하고 CPU 부하를 감시하십시오. – Halcyon
'select' 또는'poll'을 사용하여 입력이 도착하기를 기다릴 수 있습니다. 프로그램이 더 빨리 응답하고 CPU 사용량이 적습니다. – mvds