問題一覧に戻る
上級パフォーマンスと並行処理
問題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())