您的位置:首页 > 编程语言 > PHP开发

PHP多线程扩展pthreads示例

2016-11-29 19:27 281 查看
<?php
class Request extends Thread {
public $url;
public $data;
public function __construct($url) {
$this->url = $url;
}
public function run() {
// 线程处理一个耗时5秒的任务
for($i=0;$i<5;$i++) {
echo '线程: '.date('H:i:s')."\n";
sleep(1);
}
$response = file_get_contents($this->url);
if ($response) {
$this->data = array($response);
}
echo "线程: 任务完成\n";
}
}
$request = new Request('hello.html');
// 运行线程:start()方法会触发run()运行
if ($request->start()) {
// 主进程处理一个耗时10秒的任务,此时线程已经工作
for($i=0;$i<10;$i++) {
echo '进程: '.date('H:i:s')."\n";
sleep(1);
}
// 同步线程并输出线程返回的数据
$request->join();
echo '线程返回数据: '.$request->data[0];
}
/*
如果顺序执行,合计时间将是15秒,借助线程,则只需10秒.
生成文件: echo 'Hello' > hello.html
运行计时: time php req.php
查看线程: ps -efL|head -n1 && ps -efL|grep php
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: