asyncio 非同期プログラミング入門
asyncio を使った非同期プログラミング入門 asyncio を使った非同期プログラミング入門 非同期プログラミングは、従来の並行処理とは異なるアプローチです。 「実行のブロックを避ける」という概念に基づき、I/O待ちなどの処理を待つ間もプログラムの実行を継続させます。 これにより、CPUのアイドル時間を削減し、特にI/Oがボトルネックとなるアプリケーションにおいて、パフォーマンスを大幅に向上させることができます。 asyncio とは? Python の asyncio モジュールは、このような非同期プログラミングを実現するための標準ライブラリです。 async キーワードを使って、コルーチン(非同期関数)を定義し、 await キーワードを使って、他のコルーチンの実行を一時停止させ、完了するのを待つことができます。 非同期プログラミングの基本的な流れ 1. コルーチンの定義: async def を使って、非同期関数 (コルーチン) を定義します。 2. await の使用: await キーワードを使って、他のコルーチンの実行を待つことができます。 await は、指定されたコルーチンが完了するまで、現在のコルーチンの実行を中断します。 3. イベントループ: asyncio のイベントループが、コルーチンの実行をスケジュールし、管理します。 簡単な例:複数の HTTP リクエストを同時に送信 import asyncio import aiohttp async def fetch_url(session, url): async with session.get(url) as response: return await response.text() async def main(): async with aiohttp.ClientSession() as session: ...