問題一覧に戻る
上級パフォーマンスと並行処理
問題119: asyncio実践

asyncio.gather()は、複数の非同期タスクを並行実行し、全ての結果をリストで返します。*演算子でタスクのリストを展開して渡します。これにより、複数の非同期操作を効率的に管理し、I/O待機時間を最小化できます。async/awaitと組み合わせて強力な非同期プログラムを構築できます。

# asyncio実践
import asyncio

# 非同期タスク
async def fetch_data(id):
print(f"Fetching data {id}")
await asyncio.sleep(1)
return f"Data {id}"

# メイン関数
async def main():
# タスクを集める
tasks = [fetch_data(i) for i in range(3)]
results = await asyncio.(tasks)

print(f"Results: {results}")

# asyncioを実行
asyncio.(main())