主页 M

php实现多进程、多任务的例子

2015-03-22 网页编程网 网页编程网
<?php 
/**
*基于PHP5实现
*借助proc_open
*能启动多进程,你可以使用你的想象力做你想做的了
*如果你是在linux上跑php,并且启用pcntl模块后,使用pcntl函数该更好
**/
    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;  
}
?>
阅读原文
阅读 3477
123 显示电脑版