<?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
*/
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态