[今さら始める 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 の下でライセンスされています。
