PHP는 다중 프로세스 병렬 작업을 구현합니다(데몬 프로세스로 사용 가능)
풀어 주다: 2016-07-25 09:01:30
PHP简单实现多进程并行处理,子进程负责处理事物,父进程可控制子进程数量,用pcntl扩展实现(备注:在windows下此效果无法实现)
- /**
- * 入口函数
- * 将此文件保存为 ProcessOpera.php
- * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.php &
- * 查看进程 ps aux|grep php
- */
-
-
- ProcessOpera("runCode", array(), 8);
-
- /**
- * run Code
- */
- function runCode($opt = array()) {
- //需要在守护进程中运行的代码
- }
-
- /**
- * $func为子进程执行具体事物的函数名称
- * $opt为$func的参数 数组形式
- * $pNum 为fork的子进程数量
- */
- function ProcessOpera($func, $opts = array(), $pNum = 1) {
- while(true) {
- $pid = pcntl_fork();
- if($pid == -1) {
- exit("pid fork error");
- }
- if($pid) {
- static $execute = 0;
- $execute ;
- if($execute >= $pNum) {
- pcntl_wait($status);
- $execute--;
- }
- } else {
- while(true) {
- //somecode
- $func($opts);
- sleep(1);
- }
- exit(0);
- }
- }
- }
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31