投稿

[今さら始める Python マスター #11] 非同期プログラミング async/await

Pythonのasync/awaitとasyncioを使って、待ち時間の多い処理を効率よく進める基本を学びます。

[今さら始める Python マスター #11] 非同期プログラミング async/await

非同期処理とは

非同期処理は、待ち時間のある処理を効率よく進めるための方法です。API呼び出し、ファイル待ち、ネットワーク処理などで役立ちます。

1
2
3
4
5
6
7
import asyncio

async def hello():
    await asyncio.sleep(1)
    return "hello"

result = asyncio.run(hello())

asyncとawait

async defで非同期関数を定義し、awaitで待機します。待っている間、他の非同期タスクを進められます。

複数タスクを実行する

1
2
3
4
5
6
7
8
async def main():
    results = await asyncio.gather(
        hello(),
        hello(),
    )
    print(results)

asyncio.run(main())

いつ使うか

CPUを長く使う計算より、ネットワーク待ちが多い処理に向いています。Web APIを複数呼び出す処理などが代表例です。

今日のゴール

async/awaitは、待ち時間の多い処理を効率化するための道具です。まずはasyncio.run()とawaitの流れを理解しましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。