异步和多线程对比速度
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秒
浙公网安备 33010602011771号