PHP经验分享开源工具技巧PHP实战

PHP swoole (3.多进程)

2017-06-01  本文已影响538人  Separes

文档: https://wiki.swoole.com/wiki/search/?q=process

关于进程的概念不再赘述.
话不多说,直接上code,然后再做说明:

// Father进程所引用的回调函数
function FatherProcessCallback(swoole_process $o_process)
{
    // 约定创建进程总数
    $i_num_processes = 5;
    // 设置观察变量
    $i_flag = 1;
    for ($i = 0; $i < $i_num_processes; $i++) {
        // 创建Chlidren进程
        $ChildrenProcess = new swoole_process('ChildrenProcessCallback');

        // 使用read/write在父进程与子进程间进行管道通信
        $ChildrenProcess->write($i_flag);

        // // 使用投递消息队列的方式在进程间传递数据
        // $ChildrenProcess->useQueue();
        // $ChildrenProcess->push($i_flag);

        $i_process_id = $ChildrenProcess->start();
        echo($i_process_id . PHP_EOL);
        $i_flag++;
    }
}
// Chlidren进程所引用的回调函数
function ChildrenProcessCallback(swoole_process $o_process)
{
    // 设置五秒等待时间,便于观察
    sleep(5);
    // 管道通信
    $s_recv = $o_process->read();
    // // 消息队列
    // $s_recv = $o_process->pop();
    echo ($s_recv . PHP_EOL);
}

// 创建Father进程
$FatherProcess = new swoole_process('FatherProcessCallback');
$i_process_id = $FatherProcess->start();

说明:

上一篇 下一篇

猜你喜欢

热点阅读