php实现多进程 多任务的一例代码

发布时间:2020-02-12编辑:脚本学堂
本文介绍下,php代码实现多进程与多任务的一个例子,有需要的朋友参考下吧。

代码如下:
 

复制代码 代码示例:

<?php
/**
*基于PHP5实现
*借助proc_open
*能启动多进程,你可以使用你的想象力做你想做的了
*如果你是在linux上跑php,并且启用pcntl模块后,使用pcntl函数该更好
*最后修改:by www.jb200.com 2013/6/20
**/
    error_reporting(E_ALL); 
    set_time_limit(0); 

    class Thread { 
    protected $_pref; // process reference 
    protected static $_instance = null; 
    protected $_pipes; 

    private function __construct() { 
    $this->_pref = 0; 
    } 

    public static function getInstance($file) { 
    if (null == self::$_instance) { 
    self::$_instance = new self; 
    } 

    $descriptor = array( 
    0 => array("pipe", "r"), 
    1 => array("pipe", "w"), 
    2 => array("file", "./error-output.txt", "a"), 
    ); 
    self::$_instance->_pref = proc_open("php -q $file", $descriptor, self::$_instance->_pipes); 
    return true; 
    } 

    public function __destruct() { 
    proc_close($this->_pref); 
    $this->_pref = null; 
}
?>