在Python中,可以使用協程(Coroutine)和異步IO來實現異步任務。
首先,需要使用async
關鍵字定義一個協程函數(Coroutine function),并使用await
關鍵字來等待異步操作的結果。協程函數可以使用asyncio
模塊中的事件循環(Event Loop)來調度執行。
以下是一個使用協程實現異步任務的示例:
import asyncio
async def async_task():
print("Start async task")
await asyncio.sleep(1) # 模擬耗時操作
print("Async task completed")
async def main():
print("Start main function")
await asyncio.gather(async_task(), async_task()) # 并發執行兩個異步任務
print("Main function completed")
# 創建一個事件循環并運行主函數
asyncio.run(main())
在上述示例中,async_task
函數是一個簡單的異步任務,它使用await asyncio.sleep(1)
語句來模擬一個耗時的操作。main
函數是一個協程函數,它使用await asyncio.gather()
來并發執行多個異步任務。
通過運行上述代碼,可以看到輸出結果類似于:
Start main function
Start async task
Start async task
Async task completed
Async task completed
Main function completed
以上就是使用協程實現異步任務的基本方法。當有多個異步任務需要執行時,可以使用asyncio.gather()
函數來并發執行這些任務。另外,還可以使用asyncio.wait()
函數來等待一組異步任務完成。