>  기사  >  백엔드 개발  >  PHP는 여러 프로세스를 지원합니까?

PHP는 여러 프로세스를 지원합니까?

(*-*)浩
(*-*)浩원래의
2019-09-05 09:18:002674검색

서버에서 스크립트를 실행할 때 시간이 많이 걸리는 일부 작업은 피할 수 없으며 여러 프로세스의 사용이 필수적입니다. PHP5.5 이후 PHP는 개발 요구 사항을 충족하기 위해 다중 프로세스 요소를 추가하기 시작했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.