私はこのコードのビットを書いた:Python asyncioはスレッドプールを使用しますか?
import asyncio
import threading
from aiohttp import ClientSession
async def fetch(url):
async with ClientSession() as session:
async with session.get(url) as response:
response = await response.read()
print(threading.current_thread().name)
loop = asyncio.get_event_loop()
tasks = [asyncio.ensure_future(fetch("http://example.com")) for i in range(5)]
loop.run_until_complete(asyncio.wait(tasks))
それは "MainThread" たびに出力します。これは、すべてのリクエストが同じメインスレッドを使用して同時に実行されており、スレッドプールから各リクエストを実行するスレッドを使用していないか、スレッドが抽象化されていることを意味しますか?
この投稿は、実際にはPythonがこれらの非同期タスクのために使用するスレッドプールがあることを示しているようだ: http://skipperkongen.dk/2016/09/09/easy-parallel-http-requests-with-python-and-asyncio/