zoukankan      html  css  js  c++  java
  • PHP实现多进程并行操作(可做守护进程)

    /**
    02     * 入口函数
    03     * 将此文件保存为 ProcessOpera.php
    04     * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.php &
    05     * 查看进程 ps aux|grep php
    06     */
    07    
    08    
    09    ProcessOpera("runCode", array(), 8);
    10    
    11    /**
    12     * run Code
    13     */
    14    function runCode($opt = array()) {
    15       //需要在守护进程中运行的代码
    16    }
    17    
    18    /**
    19     * $func为子进程执行具体事物的函数名称
    20     * $opt为$func的参数 数组形式
    21     * $pNum 为fork的子进程数量
    22     */
    23    function ProcessOpera($func, $opts = array(), $pNum = 1) {
    24        while(true) {
    25            $pid = pcntl_fork();
    26            if($pid == -1) {
    27                exit("pid fork error");
    28            }  
    29            if($pid) {
    30                static $execute = 0;
    31                $execute++;
    32                if($execute >= $pNum) {
    33                    pcntl_wait($status);
    34                    $execute--;
    35                }  
    36            } else {
    37                while(true) {
    38                    //somecode
    39                    $func($opts);
    40                    sleep(1);
    41                }  
    42                exit(0);
    43            }  
    44        }  
    45    }

  • 相关阅读:
    03 重定向,请求转发,cookie,session
    02 http,servlet,servletconfig,HttpServletRequest ,HttpServletResponse
    02 JDBC相关
    01 mysql
    16 反射,枚举,新特性
    13 递归练习
    12 IO流
    11 异常
    兼容当前五大浏览器的渐变颜色背景gradient的写法
    Electron Browser加载iframe(webview src属性)
  • 原文地址:https://www.cnblogs.com/xingmeng/p/2892667.html
Copyright © 2011-2022 走看看