登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
资源区
›
代码
›
聊聊 PHP 多进程模式下的孤儿进程和僵尸进程 ...
聊聊 PHP 多进程模式下的孤儿进程和僵尸进程
[ 复制链接 ]
决台
2025-6-4 14:18:57
大家好,我是码农先森。
在 PHP 的编程实践中多进程通常都是在 cli 脚本的模式下使用,我依稀还记得在多年以前为了实现从数据库导出千万级别的数据,第一次在 PHP 脚本中采用了多进程编程。在此之前我从未接触过多进程,只知道 PHP-FPM 进程管理器是多进程模型,但从未在编程中进行实践。多进程虽然能带来效率上的提升,但依然会带来不少的问题,如果初学者使用多进程,那注定会遇到各种奇奇怪怪的 Bug 比如并发操作数据库引起死锁、共用内存变量资源造成串数据、忘记回收进程资源导致产生孤儿进程、僵尸进程等。反正如果我们长期都是 PHP-FPM 模式下编程的话,在使用多进程编程时需要慎之又慎,避免出现意想不到的问题。不过这次我想分享的内容是多进程模式下的孤儿进程和僵尸进程,通过示例代码来看看这两者进程是如何产生的,又应该如何解决,内容不难但是在实际的编程中是可能比较容易忽视的点。
按照惯例我们先看看孤儿进程和僵尸进程的基础概念。
孤儿进程:是指一个进程的父进程已经终止,但该子进程仍然在运行。当父进程结束时,操作系统会将其所有的子进程重新分配给 init 进程。init 进程会负责这些孤儿进程,并确保它们能够正确结束。孤儿进程不会造成资源泄漏,因为最终它们会被 init 进程管理并正确清理。
僵尸进程:是指一个已经完成执行的进程,但仍在进程表中保留了一些信息。这通常发生在父进程未调用 wait() 或相关函数来获取子进程的退出状态时。僵尸进程处于 Z 状态,是一种占用系统资源但不占用 CPU 的进程。僵尸进程会继续占用系统的进程 ID,如果大量产生将导致进程 ID 耗尽,可能会影响系统的正常运行。
这两者进程的基础概念应该还比较好理解,孤儿进程的产生就是缘于父进程的不负责,自己先跑路了,导致自己的子进程变成了孤儿,最后孤儿进程被系统给回收了,可以理解为被政府的福利院收养了。僵尸进程的产生就是儿子进程执行完了没有退出,但是父进程又不知情,无法及时回收儿子进程的资源,导致自己的儿子进程变成了僵尸进程,僵尸进程往往比孤儿进程对系统的危害更大,接下来我们来看看具体的代码示例。
首先看看
孤儿进程
示例,使用 pcntl_fork 函数创建了一个子进程,子进程会每间隔 1 秒钟获取一次自己进程的 ID 和父进程的 ID,而父进程在 2 秒钟之后就退出跑路了,自此子进程就变成了孤儿进程,被系统进程收养了。
[code]
进程
聊聊
PHP
模式
孤儿
相关帖子
PHP 8.5 升级指南 了解即将废弃的 11 个功能和完整迁移方案
进程、线程、协程、虚拟线程,傻傻分不清楚
【Android】基于SurfaceControlViewHost实现跨进程渲染
进程之间的数据共享-基于共享内存和数据管理器
微软外服工作札记②——聊聊微软的知识管理服务平台和一些编程风格
PHP交友聊天源码
PHP 图像处理实战 GD/Imagick 从入门到精通,构建高性能图像服务
别再用 PHP 动态方法调用了!三个坑让你代码难以维护
C# 弃元模式:从语法糖到性能利器的深度解析
三类代码协同模式,你要如何选?
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
PHP 8.5 升级指南 了解即将废弃的 11 个功能和完整迁移方案
0
358
纪晴丽
2025-10-05
业界
进程、线程、协程、虚拟线程,傻傻分不清楚
1
663
蓝娅萍
2025-10-05
业界
【Android】基于SurfaceControlViewHost实现跨进程渲染
0
444
毋峻舷
2025-10-06
代码
进程之间的数据共享-基于共享内存和数据管理器
0
110
笃迩讦
2025-10-07
安全
微软外服工作札记②——聊聊微软的知识管理服务平台和一些编程风格
0
52
狙兕
2025-10-07
程序
PHP交友聊天源码
0
28
新程序
2025-10-08
业界
PHP 图像处理实战 GD/Imagick 从入门到精通,构建高性能图像服务
0
358
边书仪
2025-10-09
业界
别再用 PHP 动态方法调用了!三个坑让你代码难以维护
0
642
东门芳洲
2025-10-10
业界
C# 弃元模式:从语法糖到性能利器的深度解析
0
25
南宫玉英
2025-10-10
安全
三类代码协同模式,你要如何选?
0
301
跟尴
2025-10-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
决台
2025-6-4 14:18:57
关注
0
粉丝关注
23
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994888
dage888
999994
富账慕
10007
4
匝抽
9986
5
孙淼淼
9992
6
柴古香
9993
7
筒濂
9982
8
凌彦慧
9988
9
崔瑜然
9984
10
慢秤
9979
查看更多