swoole과 pcntl의 차이점

(*-*)浩
풀어 주다: 2019-12-12 11:24:18
원래의
2452명이 탐색했습니다.

swoole과 pcntl의 차이점

PHP의 프로세스 제어 지원은 Unix 스타일 프로세스 생성, 프로그램 실행, 신호 처리 및 프로세스 중단을 구현합니다. 프로세스 제어는 웹 서버 환경에서는 사용할 수 없으며, 웹 서비스 환경에서 사용할 경우 예상치 못한 결과가 발생할 수 있습니다. >                                        (권장 학습: swoole 비디오 튜토리얼 )

PCNTL은 이제 신호 처리를 위한 콜백 메커니즘으로 틱을 사용합니다. 틱의 속도는 이전 처리 메커니즘을 훨씬 초과합니다. 이 변경은 "사용자 틱"과 동일한 의미를 따릅니다.

clare() 문을 사용하여 프로그램 콜백이 발생할 수 있는 위치를 지정할 수 있습니다. 이를 통해 비동기 이벤트 처리의 오버헤드를 최소화할 수 있습니다. PHP를 컴파일할 때 pcntl을 활성화하면 pcntl이 실제로 스크립트에서 사용되는지 여부에 관계없이 항상 이러한 오버헤드가 발생합니다.

한 가지 조정은 PHP 4.3.0 이전의 모든 pcntl 스크립트가 작동하도록 하려면 콜백이 허용될 것으로 예상되는 부분(코드)에서 선언()을 사용하거나 선언()의 새로운 전역 구문을 사용한다는 것입니다. 스크립트 전체를 효율적으로 만들기 위해.

참고: 이 확장은 Windows 플랫폼에서는 사용할 수 없습니다.

swoole은 PHP의 pcntl을 대체하기 위해 다중 프로세스 관리 모듈을 추가합니다. pcntl과의 차이점은 다음과 같습니다.

swoole_process는 swoole_process가 하위 프로세스 내에서 표준 입력 및 출력 리디렉션을 지원하지 않는 프로세스 간 통신을 제공합니다. 에코 또는 읽기 키보드 입력을 리디렉션하여 파이프에서 데이터를 가져올 수 있습니다. 하위 프로세스는 비동기식일 수 있습니다.

프로세스 간 통신(IPC)

하위 프로세스와 상위 프로세스는 파이프를 통해 통신하여 데이터를 전송할 수 있습니다. IPC는 다중 프로세스 프로그래밍에 자주 사용됩니다. PHP의 pcntl 모듈은 IPC 기능을 제공하지 않으므로 기능이 제한됩니다. swoole_process는 이러한 기능을 제공하고 인터페이스를 캡슐화합니다. 프로세스 간 통신은 간단히 인터페이스를 호출하여 완료할 수 있습니다.

$worker_num = 8;
for($i = 0; $i < $worker_num; $i++)
{
    $process = new swoole_process(&#39;callback_function&#39;, $redirect_stdout);
    $pid = $process->start();
    $workers[$pid] = $process;
}
function callback_function(swoole_process $worker)
{
    //echo "Worker: start. PID=".$worker->pid."\n";
    //recv data from master
    $recv = $worker->read();
    echo "From Master: $recv\n";
    //send data to master
    $worker->write("hello master\n");
    sleep(2);
    $worker->exit(0);
}
로그인 후 복사

읽기/쓰기 2가지 방법은 파이프라인에서 데이터를 읽고 쓰는 것입니다. 메인 프로세스는 쓰기/읽기를 통해 자식 프로세스에 데이터를 쓰고 읽을 수 있습니다.

위 내용은 swoole과 pcntl의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿