您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php怎樣實現多線程 ”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“php怎樣實現多線程 ”這篇文章吧
public function testa() {
$id = $_REQUEST['id'];
for($i=0;$i<1000000;$i++){
}
$time = time();
$data['time'] = $time;
M('test')->add($data);
}
public function testb() {
$id = $_REQUEST['id'];
$time = time();
$data['time'] = $time;
M('test')->add($data);
}
php本生是不支持多線程的,如果想要上面2個方法執行的時間相同,我采用了curl,一下是curl并行這2個方法的代碼
本部分設定了隱藏,您已回復過了,以下是隱藏的內容
//加載一個多進程CURL實例
$mh = curl_multi_init();
$handles = array();
$array=array("localhost:1001/index.php/test/testa","localhost:1001/index.php/test/testb");
foreach($array as $k=>$v)
{
// 創建一個單線程CURL實例
$ch = curl_init();
// 設置CURL相關參數
curl_setopt($ch, CURLOPT_URL, $v);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// 將該進程加載到實例中
curl_multi_add_handle($mh,$ch);
// 加入循環數組中
$handles[] = $ch;
}
// 執行CURL多線程實例
$running=null;
do
{
curl_multi_exec($mh,$running);
// 間隔0.25S
//usleep (250000);
} while ($running > 0);
// 獲取采集內容
for($i=0;$i<count($handles);$i++)
{
curl_multi_remove_handle($mh,$handles[$i]);
}
//關閉實例
curl_multi_close($mh);
以上是“php怎樣實現多線程 ”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。