首页 » 网站推广 » newphp过程技巧_PHP多进程编程实例

newphp过程技巧_PHP多进程编程实例

访客 2024-11-28 0

扫一扫用手机浏览

文章目录 [+]

以下代码段实现天生3个子(worker)进程,并对子(worker)进程运行状态进行监听与非常捕捉,可进行完善补充,以用于行列步队的多消费进程天生场景。

GLOBAL $pids;$worker_count = 3; //指定天生3个worker进程while (true) {for ($i = 0; $i < $worker_count; ++$i) {if (!empty($pids[$i]) && posix_kill($pids[$i], 0)) {//trigger_error(\公众process \"大众 . $pids[$i] . \公众 is running\公众);continue;} else {$pid = pcntl_fork();if ($pid == - 1) {die(\"大众ERROR:fork failed\公众);} else if ($pid) {$pids [$i] = $pid;trigger_error(\"大众new pid=$pid\"大众);continue;} else { //子进程要做的事情//something to doexit();}//pcntl_wait();}}declare ( ticks = 1 );pcntl_signal(SIGTERM, \"大众sig_handler\"大众);pcntl_signal(SIGHUP, \公众sig_handler\"大众);pcntl_signal(SIGINT, \"大众sig_handler\"大众);/ -1 等待任意子进程退出 WNOHANG 如果没有子进程退出急速返回 pcntl_waitpid 返回0表示没有子进程退出,返回-1表示有缺点发生/$pid = pcntl_waitpid(- 1, $status, WNOHANG);if ($pid <= 0) {// 没有子进程退出sleep(2);} else {trigger_error(\公众process $pid is exit\"大众);}}function sig_handler() {GLOBAL $pids;foreach ($pids as $pid) {trigger_error(\公众kill pid $pid\"大众);if (!posix_kill($pid, 0)) {trigger_error(\"大众process $pid has been exit(zombe)\公众);continue;}$ret = posix_kill($pid, SIGINT);if ($ret) {$status = \"大众\"大众;pcntl_waitpid($pid, $status);trigger_error(\"大众process $pid is exit\"大众);} else {trigger_error(\公众send signal to process $pid failed\公众, E_USER_ERROR);}}exit();}

把稳:

newphp过程技巧_PHP多进程编程实例

(1)如果子进程先于父进程退出, 同时父进程又没有调用wait/waitpid,则该子进程将成为僵尸进程。

newphp过程技巧_PHP多进程编程实例
(图片来自网络侵删)

(2)这段代码在实行pcntl_signal前,先加入了declare(ticks = 1),ticks=1表示每实行1行PHP代码就回调此函数。
由于PHP的函数无法直接注册到操作系统旗子暗记设置中,以是pcntl旗子暗记须要依赖tick机制。
通过查看pcntl.c的源码实现创造。
pcntl_signal的实现事理是,触发旗子暗记后先将旗子暗记加入一个行列步队中。
然后在PHP的ticks回调函数中不断检讨是否有旗子暗记,如果有旗子暗记就实行PHP中指定的回调函数,如果没有则跳出函数。

“大略印象”头条号每天将禁绝时发布一篇文章,文章内容大多为原创性技能干系或技能人的另一壁生活,欢迎大家收藏、转发文章或点击右上角的“关注”,支持我的头条号,也可以直接访问我的个人博客(http://www.thanks.live)查看最新撰写的文章。
同时,也非常高兴能看到大家在文章底部评论区谈论、示正文章的不当之处,分享中可以探求到技能人独占的快乐~~~

标签:

相关文章

介绍直播新纪元,轻松进入直播的五大步骤

随着互联网技术的飞速发展,直播行业在我国逐渐崛起,越来越多的人选择通过直播这一新兴媒介展示自己、分享生活、传递价值。对于许多新手来...

网站推广 2025-01-03 阅读1 评论0

介绍相机美颜原理,科技与美学的完美结合

随着科技的发展,智能手机的摄像头功能日益强大,美颜相机成为了许多人拍照的首选。美颜相机不仅满足了人们对于美的追求,更在视觉上给人带...

网站推广 2025-01-03 阅读1 评论0

介绍磁铁的制造,科学与艺术的完美结合

磁铁,一种神秘的物质,自古以来就吸引了无数人的目光。它不仅具有独特的磁性,还能在工业、医疗、科研等领域发挥重要作用。磁铁是如何制造...

网站推广 2025-01-03 阅读1 评论0

介绍电瓶激活方法,让电池焕发新生

随着科技的不断发展,电动汽车逐渐成为人们出行的首选。而电瓶作为电动汽车的核心部件,其性能直接影响着车辆的续航里程和行驶体验。新购买...

网站推广 2025-01-03 阅读1 评论0