文章精选推荐
1 JetBrains Ai assistant 编程工具让你的工作效率翻倍
2 Extra Icons:JetBrains IDE的图标增强神器
3 IDEA插件推荐-SequenceDiagram,自动生成时序图
4 BashSupport Pro 这个ides插件主要是用来干嘛的 ?
5 IDEA必装的插件:Spring Boot Helper的使用与功能特点
6 Ai assistant ,又是一个写代码神器
7 Cursor 设备ID修改器,你的Cursor又可以继续试用了
文章正文
在 PHP 中,由于其传统的同步阻塞模型,实现并行异步处理 HTTP 请求并不像其他语言(如 Go 或 Node.js)那样直接。不过,仍然可以通过一些扩展和工具来实现并行异步处理。以下是几种常见的方法:
1. 使用 cURL
的多线程功能
PHP 的 cURL
扩展支持多线程处理,可以通过 curl_multi_*
系列函数实现并行 HTTP 请求。
示例代码:
$urls = [
'https://example.com/api/1',
'https://example.com/api/2',
'https://example.com/api/3',
];
$mh = curl_multi_init(); // 初始化多线程 cURL
$handles = [];
foreach ($urls as $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch); // 将单个 cURL 句柄添加到多线程中
$handles[] = $ch;
}
$running = null;
do {
curl_multi_exec($mh, $running); // 执行并行请求
curl_multi_select($mh); // 等待活动
} while ($running > 0);
$responses