PCNTL--PHP进程控制扩展学习笔记
admin
2023-06-28 11:24:02
0

  PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。

  目前该扩展只能运行在*unix下,PCNTL现在使用了ticks作为信号处理的回调机制,ticks在速度上远远超过了之前的处理机制。 这个变化与“用户ticks”遵循了相同的语义。您可以使用declare() 语句在程序中指定允许发生回调的位置。这使得我们对异步事件处理的开销最小化。在编译PHP时 启用pcntl将始终承担这种开销,不论您的脚本中是否真正使用了pcntl。

  在学习PCNTL前,请确保PHP已经安装了该扩展:

[root@laiji ~]# php -m|grep pcntl
pcntl

  学习实例:

  为什么会需要进行PID值的判断呢?是因为在pcntl_fork()运行之后,fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。换句话说,就是产生子进程与父进程都会继续执行后面相同的代码,因此需要区别当前运行的进程属性。

  我们运行后发现,先会进来执行parent分支,但是对于哪个进程先结束却是依赖于LINUX系统的进程运行过程,你可以为进程设置优先级(pcntl_setpriority — 修改任意进程的优先级)。常常我们父进程需要依赖子进程都运行完成后才能结束,因此在父进程需要等待子进程,使用的PCNTL函数:pcntl_wait — 等待或返回fork的子进程状态。

  父进程依赖子进程完成的代码为:

运行后,在父进程需要等待15秒后的子进程完成了,才会运行到最后一步。

相关内容

热门资讯

绿色算力全栈AI平台在呼和浩特...   新华社呼和浩特5月30日电(记者侯维轶)30日,绿色算力全栈AI平台——内蒙古词元交易平台在内蒙...
北京太空智算研究院在北京亦庄成... 红星资本局5月30日消息,近日,北京太空智算研究院在北京经济技术开发区(简称“北京经开区”,又称“北...
第二届西部医学科技创新学术大会... 封面新闻记者 邱添 2026年5月30日,在第十个全国科技工作者日来临之际,一场汇聚医学前沿智慧与创...
地博光电取得存储自动化料库专利... 国家知识产权局信息显示,昆山地博光电材料有限公司取得一项名为“一种存储自动化料库”的专利,授权公告号...
香港政务司司长谈黎家盈:香港由... 据凤凰卫视报道,首位来自香港的载荷专家黎家盈早前随神舟二十三号载人飞船升空。香港政务司司长陈国基表示...
亚美尼亚大选在即,俄方突然召回... 【文/观察者网 阮佳琪】当地时间周五(5月29日),在哈萨克斯坦首都阿斯塔纳,亚美尼亚由副总理格里戈...
财政部在香港发行60亿元人民币... 新华社北京5月30日电 《中国证券报》30日刊发文章《财政部在香港发行60亿元人民币绿色主权债券》。...
原创 追... 2026年5月30日是全国科技工作者日。在吉林省长春市王大珩故居前,这位中国光学事业奠基人的新雕像揭...
京东618独家首发欧姆龙血糖尿... 当前,国民居家慢病管理意识持续增强,血糖、尿酸等健康指标的常态化监测,早已成为家庭健康管理的刚需。5...
华为申请天线旋转调整波束角度专... 国家知识产权局信息显示,华为技术有限公司申请一项名为“天线、通信设备以及通信系统”的专利,公开号CN...