微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php进程 swoole

 

<?PHP

$pid = posix_getpid();
$ppid = posix_getppid();
var_dump($pid);
cli_set_process_title("myparent");

for($i = 1;$i<10;$i++){
    $child = new Swoole\Process(function(){
        cli_set_process_title("mychild");
        echo "child ".getmypid().PHP_EOL;
        sleep(10);

    });
    $child->start();
}

while(true){
    sleep(1);
}

 

如果不进行回收,会产生僵尸进程

[root@localhost swoole]# PHP test.PHP 
int(31030)
child 31031
child 31033
child 31034
child 31035
child 31032
child 31036
child 31037
child 31038
child 31039

 

 

 

 子进程输入到父进程

<?PHP

$pid = posix_getpid();
$ppid = posix_getppid();
var_dump($pid);
cli_set_process_title("myparent");


$child = new Swoole\Process(function(){
    cli_set_process_title("mychild");

    while(true){
        echo "child ".getmypid();
        sleep(1);
    }

},true);

$child->start();

Swoole\Process::wait(false); // true是堵塞式的,读取子进程内容必须放在他前面,才能在被销毁之前拿到数据

//$child1 = new Swoole\Process(function(){
//    cli_set_process_title("mychild1");
//    echo "child1 ".getmypid().PHP_EOL;
//    while(true){
//        sleep(1);
//    }
//
//});
//$child1->start();



while(true){
    echo $child->read()." brady".PHP_EOL;
    sleep(1);
}

  

  

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐