<?php
class My extends Thread{
private $name;
public function __construct($name){
$this->name = $name;
}
function run(){
for($i=1;$i<10;$i++){
echo Thread::getCurrentThreadId() . ":名字为:{$this->name}.开始运行时间:".microtime()."\n";
sleep(2); // <------
}
}
}
echo "创建线程池开始\n";
for($i=0;$i<2;$i++){
$pool[] = new My("name:".$i);
}
echo "创建线程池结束\n";
echo "启动线程\n";
foreach($pool as $worker){
$worker->start();
}
echo "启动线程结束\n";
echo "等待线程【全部】执行结果\n";
foreach($pool as $worker){
$worker->join();//等待执行完成
}
echo "整个程序全部跑完\n";
执行结果:
创建线程池开始
创建线程池结束
启动线程
139781318174464:名字为:name:0.开始运行时间:0.83960700 1492476192
启动线程结束
等待线程【全部】执行结果
139781306578688:名字为:name:1.开始运行时间:0.84429500 1492476192
139781318174464:名字为:name:0.开始运行时间:0.84175800 1492476194
139781306578688:名字为:name:1.开始运行时间:0.84574500 1492476194
139781318174464:名字为:name:0.开始运行时间:0.84516200 1492476196
139781306578688:名字为:name:1.开始运行时间:0.84988200 1492476196
139781318174464:名字为:name:0.开始运行时间:0.84790800 1492476198
139781306578688:名字为:name:1.开始运行时间:0.86454800 1492476198
139781318174464:名字为:name:0.开始运行时间:0.84962700 1492476200
139781306578688:名字为:name:1.开始运行时间:0.86639000 1492476200
139781318174464:名字为:name:0.开始运行时间:0.85363000 1492476202
139781306578688:名字为:name:1.开始运行时间:0.87072800 1492476202
139781318174464:名字为:name:0.开始运行时间:0.85605500 1492476204
139781306578688:名字为:name:1.开始运行时间:0.87217500 1492476204
139781318174464:名字为:name:0.开始运行时间:0.85843100 1492476206
139781306578688:名字为:name:1.开始运行时间:0.87987500 1492476206
139781318174464:名字为:name:0.开始运行时间:0.85966700 1492476208
139781306578688:名字为:name:1.开始运行时间:0.89162500 1492476208
整个程序全部跑完