博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php多进程中的阻塞与非阻塞
阅读量:5899 次
发布时间:2019-06-19

本文共 435 字,大约阅读时间需要 1 分钟。

我们通过pcntl_fork来创建子进程,使用pcntl_wait和pcntl_waitpid来回收子进程。
子进程退出后,父进程没有及时回收,就会产生僵尸进程。
 
例1:
我们通过for循环fork出5个子进程,父进程会阻塞着等待子进程退出,然后创建下一个子进程。
上述代码输出结果如下:
20081 020082 120083 220084 320085 4
但我们创建多进程的目的,就是为了能够并行的处理任务,阻塞的方式并不是我们想看到的。
例2:
我们可以通过设置pcntl_wait的第二个参数为
WNOHANG
来控制进程是否阻塞。
该函数可以在没有子进程退出的情况下立刻跳出执行后续代码。
 
pcntl_wait等同于以pid为-1调用pcntl_waitpid函数。
pcntl_waitpid函数可以等待指定pid的进程。
 
 
 

 

转载于:https://www.cnblogs.com/jkko123/p/6294602.html

你可能感兴趣的文章
计算机硬件基础知识
查看>>
SQLServer删除/重建/禁用/启用外键约束
查看>>
Makefile之深入浅出
查看>>
Unity3D播放视频
查看>>
linux运维工程师必会技能,用mail向qq邮箱发邮件。
查看>>
Spring AOP源码分析(四)Spring AOP的JDK动态代理
查看>>
99%的程序都没有考虑的网络异常
查看>>
mysql-DDL-DML-DCL
查看>>
df命令/du命令/磁盘分区
查看>>
正确使用PostgreSQL的数组类型
查看>>
shell脚本基础应用(二)if单分支,双分支,多分支语句
查看>>
免费开放阅读 | 数据库管理系统的事务原理(上)
查看>>
CentOS 7 上部署rsync远程同步
查看>>
我的相亲日记_13(原创连载)
查看>>
软件测试英文词汇--补充中
查看>>
flink流计算随笔(6)
查看>>
怎样将普通的图片格式转换成PDF格式
查看>>
PDF怎么转HTML,在线将PDF转HTML的教程
查看>>
云宏大讲坛 | 饭局排桌子,排出了分布式资源调度高级规则
查看>>
linux 上装jdk,tomcat,mysql
查看>>