서버에서 스크립트를 실행할 때 시간이 많이 걸리는 일부 작업은 피할 수 없으며 여러 프로세스의 사용이 필수적입니다. PHP5.5 이후 PHP는 개발 요구 사항을 충족하기 위해 다중 프로세스 요소를 추가하기 시작했습니다.
Note
여러 프로세스를 구현하기 위해 활성화해야 하는 확장 프로그램: pcntl, posix.
PHP의 다중 프로세스 프로그래밍은 Windows 환경에서 지원되지 않습니다. 이 기사는 주로 Linux 환경에서 개발 및 테스트되었습니다.
주요 기능 (권장 학습: PHP 비디오 튜토리얼)
pcntl_fork : 여러 프로세스 생성, 호출 후 두 프로세스의 pid가 반환됩니다. 0은 하위 프로세스이고 0보다 큰 것은 상위 프로세스입니다(상위 프로세스는 하위 프로세스의 ID를 가져오므로 0보다 큽니다). 0), -1은 생성 실패를 의미합니다
$pid = $pcntlInstall ? pcntl_fork() : 0; if ($pid == -1) { //fork失败 } elseif ($pid > 0) { //父进程 ...... } elseif ($pid == 0) { //子进程 ...... }
pcntl_signal: 신호 처리기 등록 콜백 함수는 하위 프로세스가 종료될 때 전송된 신호를 캡처할 수 있습니다.
/配合pcntl_signal使用 declare (ticks = 1); //当子进程退出时,会触发该函数,当前子进程数-1 pcntl_signal(SIGCHLD, function ($signo) { switch ($signo) { case SIGCHLD: echo $curChildPro . 'SIGCHLD', PHP_EOL; $curChildPro--; break; } });
pcntl_wait: 상위 프로세스를 일시 중지하고 대기하는 데 사용됩니다. 하위 프로세스 종료
위 내용은 PHP는 여러 프로세스를 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!