在Python中,可以使用asyncio
模塊來實現異步回調。asyncio
是Python 3.4及以上版本內置的異步IO框架。
下面是一個簡單的示例,演示了如何使用異步回調實現并發執行多個任務:
import asyncio
# 定義一個異步函數
async def async_task(task_id):
print(f"Start task: {task_id}")
# 模擬任務執行耗時
await asyncio.sleep(1)
print(f"Finish task: {task_id}")
# 定義回調函數
def callback(future):
print(f"Task done: {future.result()}")
# 創建事件循環
loop = asyncio.get_event_loop()
# 創建多個任務
tasks = []
for i in range(5):
task = loop.create_task(async_task(i))
task.add_done_callback(callback)
tasks.append(task)
# 并發執行任務
loop.run_until_complete(asyncio.wait(tasks))
# 關閉事件循環
loop.close()
在上述示例中,我們首先定義了一個異步函數async_task
,該函數模擬了一個耗時1秒的任務。然后,我們創建了一個事件循環,并使用create_task
方法創建了多個任務,并使用add_done_callback
方法為每個任務添加了一個回調函數callback
。最后,我們調用run_until_complete
方法并傳入任務列表,來并發執行這些任務。
當每個任務完成時,回調函數callback
會被調用,打印出任務的結果。
需要注意的是,當使用異步回調時,需要將異步函數添加到事件循環中執行,才能實現異步的效果。