下面代码对 多线程 并发请求,和单线程请求进行了对比,明显多线程快了不少。
foreach ($nodes as $i => $url) { $curl_array[$i] = curl_init($url); curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $curl_array[$i]); } $running = NULL; do { usleep(10000); curl_multi_exec($mh,$running); } while($running > 0); $res = array(); foreach($nodes as $i => $url) { $res[$url] = curl_multi_getcontent($curl_array[$i]); } foreach($nodes as $i => $url){ curl_multi_remove_handle($mh, $curl_array[$i]); } curl_multi_close($mh); return $res; } function culrTest($arr){ forea ch ($arr as $url){ $ch = curl_init(); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); echo ""; print_r($result); } } $s = microtime(true); $a = array( ' ' ' ' ' ' ); print_r(muti_thread_request($a));//9.36s culrTest($a);//27s $e = microtime(true); echo ($e - $s);
海报
0 条评论
127
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~