프로세스 통신:
1. 인터럽트 시스템
2. 명명되지 않은 파이프 [반이중 통신]
# 🎜🎜# 상위-하위 프로세스와 형제 프로세스 간의 통신에만 사용할 수 있으며 이름이 없으며 전송되는 데이터는 형식이 지정되지 않으며 파일에 의존하지 않습니다. 체계. 권장: "PHP 튜토리얼"
3. 명명된 파이프는 달성할 수 없는 문제에 사용됩니다. 이름 없는 파이프 작업을 통해 관련되지 않은 프로세스도 통신할 수 있습니다. [파일 설명자에 의존하지만 이 파일은 FIFO 유형 파일, 즉 파이프라인 파일이며 FIFO 원칙을 준수합니다. 즉 대기열이 첫 번째입니다. 첫 번째 아웃]#🎜 🎜#PS: 프로세스 차단, 비차단 원칙, 파이프라인 파일, 프로세스 [실행 상태 전송]
응용 시나리오의 예: 예를 들어, PHP의 소켓 API를 사용하여 Workerman과 유사한 네트워크 프레임워크를 작성하는 경우 통합 인터럽트 신호 이벤트 처리를 수행할 수 있습니다
인터럽트 핸들러는 인터럽트 요청을 수락하고 파이프 쓰기 끝을 통해 데이터를 쓰는 역할만 담당합니다. 메인 프로세스는 파일 디스크립터의 이벤트를 수신합니다. [읽을 수 있는 이벤트] [비공개로 로그인 가능] 스트림 소켓 관련 API를 살펴보고 처리하기 전에 IO 다중화 기능을 사용하는 방법을 이해해 보겠습니다. 인터럽트 핸들러는 너무 오랫동안 기다리지 않습니다.
물론 언어 간 프로세스 간 통신도 명명된 파이프를 통해 달성할 수 있습니다. #🎜🎜 #
$filePath = $argv[1]; if (posix_mkfifo($filePath,0666)<0){ fprintf(STDOUT,"命名管道创建错误"); exit(0); } $fd = fopen($filePath,"w"); while (is_resource($fd)){ fprintf(STDOUT,">"); $data = fgets(STDIN); if ($data){ fwrite($fd,$data,strlen($data)); } } exit(0);
위 내용은 다중 프로세스 명명된 파이프 통신 [관련 없는 프로세스] PHP 버전의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!