这篇文章主要为大家展示了“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
curl_multi_remove_handle($mh,$handles[$i]);
}
//关闭实例
curl_multi_close($mh);
以上是“php怎样实现多线程 ”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。