没有合适的资源?快使用搜索试试~ 我知道了~
php 的多进程操作实践案例分析
0 下载量 88 浏览量
2020-12-20
02:52:21
上传
评论
收藏 71KB PDF 举报
温馨提示
试读
5页
本文实例讲述了php 的多进程操作。分享给大家供大家参考,具体如下: php的多进程处理依赖于pcntl扩展,通过pcntl_fork创建子进程来进行并行处理。 例1如下: <?php $pid = pcntl_fork(); if($pid == -1) { //错误处理:创建子进程失败时返回-1. die('fork error'); } else if ($pid) { //父进程会得到子进程号,所以这里是父进程执行的逻辑 echo "parent \n"; //等待子进程中断,防止子进程成为僵尸进程。 pcntl_wait($status); } else {
资源详情
资源评论
资源推荐
php 的多进程操作实践案例分析的多进程操作实践案例分析
本文实例讲述了php 的多进程操作。分享给大家供大家参考,具体如下:
php的多进程处理依赖于pcntl扩展,通过pcntl_fork创建子进程来进行并行处理。
例1如下:
<?php
$pid = pcntl_fork();
if($pid == -1) {
//错误处理:创建子进程失败时返回-1.
die('fork error');
} else if ($pid) {
//父进程会得到子进程号,所以这里是父进程执行的逻辑
echo "parent ";
//等待子进程中断,防止子进程成为僵尸进程。
pcntl_wait($status);
} else {
//子进程得到的$pid为0, 所以这里是子进程执行的逻辑。
echo "child ";
exit;
}
pcntl_fork创建了子进程,父进程和子进程都继续向下执行,而不同是父进程会获取子进程的$pid也就是$pid不为零。而子进
程会获取$pid为零。通过if else语句判断$pid我们就可以在指定位置写上不同的逻辑代码。
上述代码会分别输出parent和child。那么输出的parent和child是否会有顺序之分?是父进程会先执行?
例2如下:
<?php
$pid = pcntl_fork();
if($pid == -1) {
die('fork error');
} else if ($pid) {
sleep(3);
echo "parent ";
pcntl_wait($status);
} else {
echo "child ";
exit;
}
我们在父进程中通过sleep来延缓执行,看看效果。
结果是,很快输出了child,等待了接近3秒后,才输出parent。所以父进程和子进程的执行是相对独立的,没有先后之分。
那么问题又来了?pcntl_wait是做什么用的?
会挂起当前进程,直到子进程退出,如果子进程在调用此函数之前就已退出,此函数会立刻返回。子进程使用的资源将被释
放。
例3如下:
<?php
$pid = pcntl_fork();
if($pid == -1) {
die('fork error');
} else if ($pid) {
pcntl_wait ($status);
echo "parent ";
} else {
sleep(3);
weixin_38581455
- 粉丝: 2
- 资源: 895
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于UC3842+LTS26Q1565A设计PC机充电器 硬件(原理图+PCB)工程文件.zip
- Hive SQL经典面试题,大数据SQL经典面试题
- Qt实现喷码器代码,实现二维码、条形码、图形的旋转、移动等
- 基于LM324芯片比较器传感器模块AD09设计硬件(原理图+PCB)工程文件.zip
- HTTP请求 - 记一笔-添加记账.jmx
- 2205040245凡永超硬间隔svm.ipynb
- Qt喷码器demo,演示软件,不是代码
- 目标跟踪-基于目标中心点同时进行目标检测+目标跟踪算法实现-项目源码-优质项目实战.zip
- Python《文本特征分析-全唐诗数据挖掘及分析 》+源代码
- Netron-Setup-4.5.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0