成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

詳解PHP中curl_multi并發(fā)的實現(xiàn)

瀏覽:162日期:2022-09-09 18:49:21

PHP中的curl_multi系列函數(shù)可以實現(xiàn)同時請求多個URL來實現(xiàn)并發(fā),而不是像普通curl函數(shù)那樣請求后會阻塞,直到結(jié)果返回才進行下一個請求。因此在批量請求URL時可通過curl_multi系列函數(shù)提升程序的運行效率。

curl普通請求

$startTime = microtime(true);$chArr = [];$optArr = [ CURLOPT_URL => ’http://www.httpbin.org/ip’, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1,];$result = [];//創(chuàng)建多個curl資源并執(zhí)行for ($i=0; $i<10; $i++) { $chArr[$i] = curl_init(); curl_setopt_array($chArr[$i], $optArr); $result[$i] = curl_exec($chArr[$i]); curl_close($chArr[$i]);}$endTime = microtime(true);echo sprintf('use time: %.3f s'.PHP_EOL, $endTime - $startTime);

use time: 6.080 s

curl_multi并發(fā)請求

$startTime = microtime(true);$chArr = [];$optArr = [ CURLOPT_URL => ’http://www.httpbin.org/ip’, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1,];$result = [];//創(chuàng)建多個curl資源for ($i=0; $i<10; $i++) { $chArr[$i] = curl_init(); curl_setopt_array($chArr[$i], $optArr);}//創(chuàng)建批處理curl句柄$mh = curl_multi_init();//將單個curl句柄添加到批處理curl句柄中foreach ($chArr as $ch) { curl_multi_add_handle($mh, $ch);}//判斷操作是否仍在執(zhí)行的標(biāo)識的引用$active = null;/** * 本次循環(huán)第一次處理 $mh 批處理中的 $ch 句柄,并將 $mh 批處理的執(zhí)行狀態(tài)寫入 $active, * 當(dāng)狀態(tài)值等于 CURLM_CALL_MULTI_PERFORM 時,表明數(shù)據(jù)還在寫入或讀取中,執(zhí)行循環(huán), * 當(dāng)?shù)谝淮?$ch 句柄的數(shù)據(jù)寫入或讀取成功后,狀態(tài)值變?yōu)?CURLM_OK ,跳出本次循環(huán),進入下面的大循環(huán)中。 */do { //處理在批處理棧中的每一個句柄 $mrc = curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM);/** * 上面這段代碼中,是可以直接使用 $active > 0 來作為 while 的條件,如下: * do { * $mrc = curl_multi_exec($mh, $active); * } while ($active > 0); * 此時如果整個批處理句柄沒有全部執(zhí)行完畢時,系統(tǒng)會不停的執(zhí)行 curl_multi_exec 函數(shù),從而導(dǎo)致系統(tǒng)CPU占用會很高, * 因此一般不采用這種方案,可以通過 curl_multi_select 函數(shù)來達到?jīng)]有需要讀取的程序就阻塞住的目的。 *//** * $active 為 true 時,即 $mh 批處理之中還有 $ch 句柄等待處理, * $mrc == CURLM_OK,即上一次 $ch 句柄的讀取或?qū)懭胍呀?jīng)執(zhí)行完畢。 */while ($active && $mrc == CURLM_OK) { /** * 程序進入阻塞狀態(tài),直到批處理中有活動連接(即 $mh 批處理中還有可執(zhí)行的 $ch 句柄), * 這樣執(zhí)行的好處是 $mh 批處理中的 $ch 句柄會在讀取或?qū)懭霐?shù)據(jù)結(jié)束后($mrc == CURLM_OK)進入阻塞階段, * 而不會在整個 $mh 批處理執(zhí)行時不停地執(zhí)行 curl_multi_exec 函數(shù),白白浪費CPU資源。 */ if (curl_multi_select($mh) != -1) { //程序退出阻塞狀態(tài)繼續(xù)執(zhí)行需要處理的 $ch 句柄 do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); }}foreach ($chArr as $i=>$ch) { //獲取某個curl句柄的返回值 $result[$i] = curl_multi_getcontent($ch); //移除批處理句柄中的某個句柄資源 curl_multi_remove_handle($mh, $ch);}//關(guān)閉一組curl句柄curl_multi_close($mh);$endTime = microtime(true);echo sprintf('use time: %.3f s'.PHP_EOL, $endTime - $startTime);

use time: 0.599 s

通過對比上述程序的運行時間可以得知,使用curl_multi系列函數(shù)并發(fā)請求要比普通的curl函數(shù)依次請求效率高很多。

到此這篇關(guān)于詳解PHP中curl_multi并發(fā)的實現(xiàn)的文章就介紹到這了,更多相關(guān)PHP curl_multi并發(fā)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: PHP
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲欧洲日韩一区二区三区| 国产亚洲婷婷免费| 欧美成人福利视频| 精品中文字幕一区二区小辣椒| 亚洲精品资源| 亚洲国产精品精华液2区45| 成人免费不卡视频| 欧美一区二区三区四区久久| 黄色日韩三级电影| 精品视频色一区| 精品一区二区久久| 久久久久一区二区三区| 一区二区三区免费在线观看| 亚洲欧洲日韩综合二区| 亚洲美腿欧美偷拍| 99国产精品| 亚洲精品水蜜桃| 国产精品久久久一区二区| 亚洲精品高清在线| 国产精品夜夜夜| 亚洲国产日韩一级| 亚洲精品在线二区| 亚洲美女免费在线| 在线视频亚洲| 亚洲一区二区三区影院| 国产亚洲网站| 亚洲欧洲成人av每日更新| 狠狠噜噜久久| 一区二区三区国产精华| 在线视频精品一区| 午夜久久福利影院| 国产日韩欧美一区二区| 日韩午夜在线| 亚洲综合999| 久久九九免费| 蜜臀av性久久久久av蜜臀妖精 | 在线亚洲精品福利网址导航| 日韩在线一二三区| 日本福利一区二区| 蜜桃av一区二区在线观看| 免费亚洲一区| 久久精品国产99| 日韩精品在线一区| 99re6这里只有精品视频在线观看| 久久嫩草精品久久久久| 欧美三区不卡| 亚洲欧美日韩久久| 久久久久一区二区| 韩国视频一区二区| 26uuu精品一区二区| 亚洲大片在线| 性感美女久久精品| 欧美久久久久久蜜桃| 成人高清视频免费观看| 久久久午夜电影| 狠狠色综合网| 亚洲成人高清在线| 欧美三级中文字幕| 成人va在线观看| 亚洲同性同志一二三专区| 国产精品亚洲综合久久| 麻豆视频一区二区| 2021国产精品久久精品| 亚洲高清资源| 亚洲欧美综合网| 久久精品成人| 国产精品一卡二卡在线观看| 久久亚洲影视婷婷| 合欧美一区二区三区| 午夜久久久久久久久久一区二区| 欧洲国产伦久久久久久久| 国产精品99久久久久久久vr| 国产欧美一区二区精品性色超碰| 亚洲精品在线免费| 久久99国产精品成人| 日韩欧美电影一区| 欧美激情综合色综合啪啪| 一区二区三区四区在线播放| 欧美午夜精品电影| 欧美国产另类| 五月婷婷综合激情| 欧美tk—视频vk| 亚洲视频导航| 蜜桃91丨九色丨蝌蚪91桃色| 欧美大胆一级视频| 精品91在线| 久久精品噜噜噜成人av农村| 国产午夜亚洲精品不卡| 乱码第一页成人| 成人国产精品视频| 亚洲一区二区三区四区在线| 欧美日韩另类一区| 国产中文一区| 九九在线精品视频| 日本一区二区视频在线| 久久另类ts人妖一区二区| 大胆欧美人体老妇| 一区二区三区欧美日| 日韩一区二区中文字幕| 国产一区二区三区久久久久久久久| 久久99这里只有精品| 国产精品成人一区二区三区夜夜夜| 色婷婷综合久久| 97精品国产97久久久久久久久久久久| 亚洲成av人片在线观看| 精品欧美黑人一区二区三区| 亚洲精品人人| 国产成人综合视频| 亚洲日本va在线观看| 欧美区一区二区三区| 91久久久久| 成人妖精视频yjsp地址| 日本特黄久久久高潮| 国产精品高潮呻吟久久| 欧美一级日韩不卡播放免费| 夜夜爽www精品| 91色婷婷久久久久合中文| 蜜桃精品视频在线观看| 中文字幕av在线一区二区三区| 欧美高清激情brazzers| 另类图片国产| 激情综合电影网| 成人国产精品免费网站| 另类专区欧美蜜桃臀第一页| 亚洲精品高清在线观看| 国产午夜亚洲精品理论片色戒| 欧美视频中文字幕| 亚洲欧洲视频| 99精品视频在线观看免费| 麻豆免费看一区二区三区| 亚洲视频资源在线| 久久久久久久久久电影| 在线成人免费视频| 一本到高清视频免费精品| 亚洲狼人精品一区二区三区| 97se狠狠狠综合亚洲狠狠| 国产一区二区美女诱惑| 视频一区中文字幕| 亚洲免费观看高清在线观看| 久久日韩精品一区二区五区| 欧美亚洲另类激情小说| 亚洲一区二区四区| 一区在线视频观看| 午夜国产精品视频免费体验区| 国产福利精品一区二区| 亚洲成人av资源| 亚洲欧美激情视频在线观看一区二区三区 | 黄色av一区| 91在线无精精品入口| 国产精品一区2区| 久久激情综合网| 天天色综合成人网| 亚洲综合区在线| 中文字幕一区二区三区视频| 久久久久青草大香线综合精品| 日韩网站在线看片你懂的| 欧美日韩一区国产| 久久久久国产精品一区二区 | 国产做a爰片久久毛片| 日韩国产欧美在线播放| 亚洲午夜精品久久久久久久久| 亚洲三级在线免费| 中文字幕中文字幕一区| 国产农村妇女精品| 久久久九九九九| 久久这里只精品最新地址| 日韩欧美精品在线| 91精品国产日韩91久久久久久| 91久久久免费一区二区| 色综合久久六月婷婷中文字幕| 中文一区在线| 国产精品日韩欧美一区二区三区 | 韩日午夜在线资源一区二区| 欧美日韩另类综合| 牛牛国产精品| 色综合欧美在线| 欧美一区1区三区3区公司| 成人av集中营| 波多野结衣中文字幕一区| 成人高清在线视频| av爱爱亚洲一区| 色综合中文字幕国产| 高清不卡一区二区| gogogo免费视频观看亚洲一| 97se亚洲国产综合自在线| 欧美在线3区| 欧美三级第一页| 亚洲精品乱码久久久久久蜜桃91| 亚洲精品乱码| 校园激情久久| 在线视频综合导航| 欧美精品成人一区二区三区四区| 欧美性色黄大片手机版| 欧美日韩免费视频| 欧美色视频在线观看| 欧美日韩国产精品成人| 欧美一级欧美三级在线观看| 久久综合精品国产一区二区三区| 精品国产区一区| 久久精品欧美一区二区三区不卡 |