Python非同期関数はどのように実装されますか

Pythonでは、非同期関数はasyncioモジュールを使用して実装できます。非同期関数では通常asyncキーワードが宣言され、awaitキーワードを使用して他の非同期操作の完了を待機します。

以下に、非同期関数を用いて簡単な非同期タスクを実行する方法の一例を示します。

import asyncio
# 定义一个异步函数
async def print_hello():
print("Hello")
# 等待1秒钟
await asyncio.sleep(1)
print("World")
# 创建一个事件循环对象
loop = asyncio.get_event_loop()
# 使用事件循环来运行异步函数
loop.run_until_complete(print_hello())
# 关闭事件循环
loop.close()

この例では、print_hello() 関数は非同期関数です。1 秒間の非同期操作 (ここでは asyncio.sleep() 関数を使用してシミュレートされています) が完了するのを await キーワードを使用して待ちます。その後、「World」が出力されます。

asyncio.get_event_loop()関数でイベントループオブジェクトを作成し、loop.run_until_complete()メソッドで非同期関数を動作させます。最後にloop.close()メソッドでイベントループを閉じます。

非同期関数は、非同期コンテキスト内、例えばイベントループ内や asyncio.run() 関数によって実行される必要があります。同期コンテキスト内で非同期関数が呼び出されると、通常の同期関数として扱われます。

bannerAds