しょっちゅう忘れることを書いておく。
33 |
259 views
この章では、コルーチンとタスクを利用する高レベルのasyncioのAPIの概略について解説する。
aync/await構文で定義されたコルーチンは、asyncioを使うアプリケーションを書く方法として好ましい。
例えば、次のhelloと表示されるコードは1秒待ってからworldを表示する。
# coding: UTF-8
import asyncio
async def main():
print("hello")
await asyncio.sleep(1)
print("world")
asyncio.run(main())
単にコルーチンを呼び出しただけでは、コルーチンの実行スケジュールは予約されない。
実際にコルーチンを実行するために、asyncioは3つの機構を提供している。
# coding: UTF-8
import asyncio
import time
async def say_after(delay, what):
print(what+" start")
await asyncio.sleep(delay)
print(what + " end")
async def main():
task1 = asyncio.create_task(
say_after(1, 'hello')
)
task2 = asyncio.create_task(
say_after(2, "world")
)
print(f"started at {time.strftime('%X')}")
await task1
await task2
print(f"finished at {time.strftime('%X')}")
if __name__ == '__main__':
asyncio.run(main())
awaitすると、task1とtask2が同時にキックされる。
Page 40 of 56.
マッスル
本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。
https://www.osumoi-stdio.com/pyarticle/