しょっちゅう忘れることを書いておく。
![]() |
66 |
504 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 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/