温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php怎样实现多线程

发布时间:2021-10-19 10:33:02 来源:亿速云 阅读:112 作者:小新 栏目:web开发

这篇文章主要为大家展示了“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怎样实现多线程 ”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI