生活随笔
收集整理的这篇文章主要介绍了
php多进程实现
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
来源:http://blog.csdn.net/e421083458/article/details/22186475
PHP多进程实现
PHP有一组进程控制函数(编译时需要–enable-pcntl与posix扩展),使得php能在nginx系统中实现跟c一样的创建子进程、使用exec函数执行程序、处理信号等功能。
CentOS 6 下yum安装php的,默认是不安装pcntl的,因此需要单独编译安装,首先下载对应版本的php,解压后
[plain] view plaincopyprint?
cd php-version/ext/pcntl phpize ./configure && make && make install cp /usr/lib/php/modules/pcntl.so /usr/lib64/php/modules/pcntl.so echo "extension=pcntl.so" >> /etc/php.ini /etc/init.d/httpd restart
方便极了。
下面是示例代码:
[php] view plaincopyprint?
<?php header('content-type:text/html;charset=utf-8' ); if (!function_exists("pcntl_fork")) { die("pcntl extention is must !"); } $totals = 3; $cmdArr = array(); for ($i = 0; $i < $totals; $i++) { $cmdArr[] = array("path" => __DIR__ . "/run.php", 'pid' =>$i ,'total' =>$totals); } pcntl_signal(SIGCHLD, SIG_IGN); foreach ($cmdArr as $cmd) { $pid = pcntl_fork(); if ($pid == -1) { die('could not fork'); } else if ($pid) { pcntl_wait($status,WNOHANG); } else { $path = $cmd["path"]; $pid = $cmd['pid'] ; $total = $cmd['total'] ; echo exec("/usr/bin/php {$path} {$pid} {$total}")."\n"; exit(0) ; } } ?>
总结
以上是生活随笔为你收集整理的php多进程实现的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。