Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python如何并发上千个请求

作者:洃铯哖輪   发布日期:2025-09-12   浏览:74

import asyncio
import aiohttp

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main(urls):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch(session, url) for url in urls]
        responses = await asyncio.gather(*tasks)
        return responses

if __name__ == "__main__":
    # 假设我们有1000个URL需要请求
    urls = [f"http://example.com/{i}" for i in range(1000)]

    # 运行异步主函数
    loop = asyncio.get_event_loop()
    results = loop.run_until_complete(main(urls))

    # 打印结果(这里只打印前5个响应的长度)
    for i, result in enumerate(results[:5]):
        print(f"Response {i} length: {len(result)}")

解释说明:

  1. 导入库:我们使用 asyncioaiohttp 库来处理并发请求。asyncio 是 Python 的异步 I/O 框架,而 aiohttp 是一个支持异步 HTTP 请求的库。
  2. 定义 fetch 函数:这是一个异步函数,用于发送 HTTP GET 请求并返回响应内容。
  3. 定义 main 函数:这是主异步函数,它创建一个会话,并为每个 URL 创建一个任务列表,然后使用 asyncio.gather 并发执行这些任务。
  4. 运行代码:在 __main__ 块中,我们生成了 1000 个 URL,并调用 main 函数来并发请求这些 URL。最后,我们打印前 5 个响应的长度作为示例。

这段代码展示了如何使用 Python 的异步编程模型来并发处理大量 HTTP 请求。

上一篇:python 多维数组

下一篇:python中%和//的区别

大家都在看

python时间格式

python读取文件路径

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

python中#

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站