php 模拟并发请求_PHP模拟并发请求

原理:使用curl_init()创建多个请求实例,再使用curl_multi_init()批量执行创建的多个请求实例。

文件1:curl.php<?php

$threads=500;//并发请求次数

$url='http://blog.cn/index.php?';//请求的url

//创建一个未定义的curl句柄数组

$ch=array();

//创建批处理cURL的句柄

$mh = curl_multi_init();

//创建并发请求次数个url用于后面给curl分配

for ($i=0; $i 

//有多少请求,创建多少curl会话

$ch[$i]=curl_init();

curl_setopt($ch[$i], CURLOPT_URL, $url.rand(1,1000));//随机参数,避免缓存

curl_setopt($ch[$i], CURLOPT_HEADER, 0);

//创建的会话分配给curl批处理句柄

curl_multi_add_handle($mh,$ch[$i]);

}

$running=null;

//所有的curl会话分配给$mh这个curl批量处理句柄来执行

do {

usleep(10000);

curl_multi_exec($mh,$running);

} while ($running > 0);

//关闭已经创建的会话句柄

for ($i=0; $i 

curl_multi_remove_handle($mh, $ch[$i]);

}

//关闭批处理句柄

curl_multi_close($mh);

?>

文件2:index.php<?php

file_put_contents('1.txt',date('Y-m-d H:i:s',time())."\r\n",FILE_APPEND );

?>

文件3:1.txt2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:06

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

2017-07-30 22:30:07

基本同时请求的还是比较多的,受带宽和CPU影响,多线程的访问,并不是一定会同时,线程是否立即执行决定权是CPU

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值