异步和多线程对比速度

import asyncio
import aiohttp
import time

async def fetch_url(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

async def main():
    urls = [
        "https://www.baidu.com",
        # "https://www.google.com",
        # "https://www.github.com"
    ] * 100  # 模拟10次请求
    tasks = [fetch_url(url) for url in urls]
    await asyncio.gather(*tasks)

if __name__ == "__main__":
    start = time.time()
    asyncio.run(main())
    print(f"异步耗时:{time.time() - start:.2f}秒")








import threading
import requests
import time

def fetch_url(url):
    response = requests.get(url)
    return response.text

def main():
    urls = [
        "https://www.baidu.com",
        # "https://www.google.com",
        # "https://www.github.com"
    ] * 100  # 模拟10次请求
    threads = []
    for url in urls:
        t = threading.Thread(target=fetch_url, args=(url,))
        threads.append(t)
        t.start()
    for t in threads:
        t.join()

if __name__ == "__main__":
    start = time.time()
    main()
    print(f"多线程耗时:{time.time() - start:.2f}秒")



(base) C:\Deep-Live-Cam-main> c: && cd c:\Deep-Live-Cam-main && cmd /C "e:\Miniforge\python.exe c:\Users\Administrator.vscode\extensions\ms-python.debugpy-2025.16.0-win32-x64\bundled\libs\debugpy\launcher 12756 -- c:\Deep-Live-Cam-main\test3.py "
异步耗时:0.07秒
多线程耗时:0.07秒

(base) C:\Deep-Live-Cam-main>

(base) C:\Deep-Live-Cam-main>
(base) C:\Deep-Live-Cam-main> c: && cd c:\Deep-Live-Cam-main && cmd /C "e:\Miniforge\python.exe c:\Users\Administrator.vscode\extensions\ms-python.debugpy-2025.16.0-win32-x64\bundled\libs\debugpy\launcher 12811 -- c:\Deep-Live-Cam-main\test3.py "
异步耗时:1.18秒
多线程耗时:28.20秒

posted on 2025-11-21 11:09  张博的博客  阅读(5)  评论(0)    收藏  举报

导航