创建一个多进程程序

本文介绍了PHP中用于进程控制的几个函数,包括pcntl_fork用于创建新进程,pcntl_waitpid用于等待或获取子进程状态,以及posix_getpid和posix_getppid用于获取进程ID。通过示例代码展示了如何在PHP中创建和管理子进程,以及如何等待子进程退出。
摘要由CSDN通过智能技术生成

函数

pcntl_fork 创建新进程
pcntl_waitpid 等待或返回fork的子进程状态
posix_getpid 返回当前进程 id
posix_getppid 取得父进程 id

注意

pcntl_fork 调用一次,返回两个值;子进程得到的是0,父进程得到的子进程 id。

查看所有正在运行的php进程

ps -ef |grep php

实例

<?php

echo "Master process id=".posix_getpid().PHP_EOL;
$pid = pcntl_fork();

switch ($pid){
    case -1:
        die('Create failed');
    case 0:
        //Child
        echo "Child process id = ".posix_getpid().PHP_EOL;
        sleep(2);
        echo "I will exit";
        break;
    default:
        //等待子进程退出,后之心父进程的退出
        if($exit_id = pcntl_waitpid($pid, $status, WUNTRACED)){
            echo "Child({$exit_id}) exited\n";
        }
        //Parent
        echo "Parent process id = ".posix_getpid().PHP_EOL;
        break;
}
sleep(18);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值