PHP中多线程的实例

现在PHP中的多线程已经比较稳定了.


在Win7环境下也测试通过了.


安装扩展的过程就不说了,度娘吧.


先定义一个 线程类(实际干活的类)


/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/4/20
 * Time: 16:36
 */
class MThreads extends \Thread
{
    private $arg;
    public function __construct($arg)
    {
        $this->arg=$arg;
    }
    public function run(){
        $i=rand(0,10);
        sleep($i);
        dump('线程'.$this->arg.' 在'.$i.'秒后运行了'.datetime());
    }
}



再来一段 主线程的控制代码



$threads=[];

$count=5;

dump(datetime(),'开始创建前');
for($i=0;$i<$count;$i++){
    $threads[]=new MThreads($i);
}

dump(datetime(),'开始运行前');
for($i=0;$i<$count;$i++){
    $ret=$threads[$i]->start();
    dump($ret,'第'.$i.'个线程的运行结果为'.datetime());
}

dump(datetime(),'同步之前');
for($i=0;$i<$count;$i++){
    $ret=$threads[$i]->join ();
    dump($ret,'第'.$i.'个线程的同步结果为'.datetime());
}

dump(datetime(),'同步之后');


很简单吧?  暂时还没有在生产环境中使用,如有同好,可交流 Q:31008088

你可能感兴趣的:(PHP中多线程的实例)