设为首页 加入收藏

TOP

[PHP] 简单多进程并发
2019-08-23 00:40:59 】 浏览:20
Tags:PHP 简单 进程 并发

 企邮搬家进程管理逻辑,经过简化后的功能实现

 

<?php
//守护进程
umask(0); //把文件掩码清0
 
if (pcntl_fork() != 0){ //是父进程,父进程退出
        exit();
}       
 
posix_setsid();//设置新会话组长,脱离终端
 
if (pcntl_fork() != 0){ //是第一子进程,结束第一子进程   
        exit();
}       
 
chdir("/"); //改变工作目录


//开启五个子进程
$worker=0;
do {

        for($i=0;$i<6;$i++){
                $pid = pcntl_fork();
                if ($pid == -1) {
                        return false;
                } elseif ($pid == 0) { //子进程,在此处处理业务逻辑

                        //TODO

                        sleep(60);    
                        exit;
                } else { // parent
                        $worker++;
                        if($worker>5){
                                $id = pcntl_wait($status);
                                if ($id > 0) {
                                        $worker--;    
                                }   
                        }   
                }   
        }   
        usleep(200000);

} while (true);

while ($worker > 0) {
        $id = pcntl_wait($status);
        if ($id > 0) {
                $worker--;    
        }   
}

 

  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Apache 错误:httpd: Could not o.. 下一篇laravel框架使用中错误及解决办法..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目