PHP-pcntl을 공유하여 다중 프로세스 코드 구현
PHP는 PCNTL 시리즈 기능을 사용하여 여러 프로세스로 트랜잭션을 처리할 수도 있습니다. 예를 들어, 데이터베이스에서 800,000개의 데이터를 얻은 후 일련의 후속 처리를 수행해야 하는데 이때 단일 프로세스를 사용해야 합니까? 내년 오늘까지 기다리시면 됩니다. . . 따라서 pcntl 기능을 사용해야 합니다.
예제 살펴보기
코드
<?php $arChildId = array(); for($i = 0; $i < 10; $i++) { $iPid = pcntl_fork(); if($iPid == -1) { die('can\'t be forked.'); } if($iPid) { # 主进程逻辑 $arChildId[] = $iPid; } else { # 子进程逻辑 $iPid = posix_getpid(); # 获取子进程的ID $iSeconds = rand(5, 30); echo '* Process '. $iPid. ' was created, and Executed, and Sleep '. $iSeconds. PHP_EOL; excuteProcess($iPid, $iSeconds); exit(); } } while(count($arChildId) > 0) { foreach($arChildId as $iKey=> $iPid) { $res = pcntl_waitpid($iPid, $status, WNOHANG); if($res == -1 || $res > 0) { unset($arChildId[$iKey]); echo '* Sub process: '. $iPid. ' exited with '. $status. PHP_EOL; } } } # 子进程执行的逻辑 function excuteProcess($iPid, $iSeconds) { file_put_contents('./log/'.$iPid.'.log', $iPid.PHP_EOL, FILE_APPEND); sleep($iSeconds); } ?>
로그인 후 복사
실행 결과
* Process 16163 was created, and Executed, and Sleep 11 * Process 16164 was created, and Executed, and Sleep 21 * Process 16165 was created, and Executed, and Sleep 24 * Process 16166 was created, and Executed, and Sleep 27 * Process 16167 was created, and Executed, and Sleep 8 * Process 16168 was created, and Executed, and Sleep 14 * Process 16169 was created, and Executed, and Sleep 14 * Process 16170 was created, and Executed, and Sleep 26 * Process 16171 was created, and Executed, and Sleep 20 * Process 16172 was created, and Executed, and Sleep 21 * Sub process: 16167 exited with 0 * Sub process: 16163 exited with 0 * Sub process: 16169 exited with 0 * Sub process: 16168 exited with 0 * Sub process: 16171 exited with 0 * Sub process: 16164 exited with 0 * Sub process: 16172 exited with 0 * Sub process: 16165 exited with 0 * Sub process: 16170 exited with 0 * Sub process: 16166 exited with 0
로그인 후 복사
멀티의 PHP-pcntl 구현과 관련된 추가 공유 -프로세스 코드 기사는 PHP 중국어 웹사이트에 주목하세요!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전
By 尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
3 몇 주 전
By DDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
2 몇 주 전
By DDD
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7548
15


Cakephp 튜토리얼
1382
52


Steam의 계정 이름 형식은 무엇입니까?
83
11


Win11 활성화 키 영구
57
19


NYT 연결 힌트와 답변
22
90

