本节内容:
php教程之php多进程实例的第二部分。
3,非阻塞方式
阻塞方式失去了多进程的并行性。
还有一种方法,既可以回收已经结束的子进程,又可以并行。
这就是非阻塞的方式。
修改脚本:
用命令行运行PHP代码:
#php -f test.php &
输出结果:
parent start, pid 2066
2066 2013-01-14 16:45:34
parent continue
2066 2013-01-14 16:45:35
child start, pid 2067
2067 2013-01-14 16:45:35
20662067 2013-01-14 16:45:362013-01-14 16:45:36
2067 2013-01-14 16:45:37
parent continue
2066 2013-01-14 16:45:37
child start, pid 2068
2068 2013-01-14 16:45:37
2067 2013-01-14 16:45:38
2068 2013-01-14 16:45:38
2066 2013-01-14 16:45:38
parent continue
2066 2013-01-14 16:45:40
child start, pid 2069
2069 2067 2013-01-14 16:45:40
2013-01-14 16:45:40
2068 2013-01-14 16:45:40
2066 2013-01-14 16:45:41
2069 2013-01-14 16:45:41
2068 2013-01-14 16:45:41
signel 17 received
child end pid 2067, status 0
2069 2013-01-14 16:45:42
2068 2013-01-14 16:45:42
2069 2013-01-14 16:45:43
signel 17 received
child end pid 2068, status 0
2069 2013-01-14 16:45:44
signel 17 received
child end pid 2069, status 0
代码说明:
多个进程又并行运行了,而且运行大约10秒钟之后,用 ps -ef | grep php 查看正在运行的进程,只有一个进程
lqling 2066 1388 0 16:45 pts/1 00:00:00 php -f t5.php
是父进程,子进程被回收了。
4,子进程退出状态
pcntl_waitpid(-1, $status, WNOHANG) $status
返回子进程的结束状态
>>> php多进程实例-目录索引:
php教程之多进程实例(1)
php教程之多进程实例(3)
>>> 延伸阅读:
php多进程并行执行脚本的代码
有关php多进程的用法举例
php中启用多进程的实例详解(ubuntu系统)
php实现多进程 多任务的一例代码
php 多进程编程的深入探讨
php 多进程实现守护进程的实例代码
php 多进程编程的实例代码
php 多进程解决代码常驻内存的问题
PHP 多进程的实现代码一例
PHP多进程并发控制的测试实例
php多进程操作的三个实例