協程是近年來編程語言中的一個熱門話題,提高代碼并發性的最佳選擇。Python 也提供了 async/await 語法支持協程異步編程。下面我們來看看 Python 如何使用協程實現異步任務。
import asyncio
async def task1():
print("開始執行任務一")
await asyncio.sleep(2) # 模擬耗時操作
print("任務一執行完畢")
async def task2():
print("開始執行任務二")
await asyncio.sleep(1) # 模擬耗時操作
print("任務二執行完畢")
async def main():
# 創建任務
t1 = asyncio.create_task(task1())
t2 = asyncio.create_task(task2())
# 并發執行任務
await t1
await t2
# 啟動事件循環
asyncio.run(main())
以上代碼中,我們首先定義了兩個任務 task1 和 task2,每個任務都是一個異步函數,通過 async 關鍵字標識。在任務內部使用 await 關鍵字就可以讓耗時操作變成異步,不會阻塞主任務。
在 main 函數中,我們通過 asyncio.create_task 方法創建兩個任務,并使用 await 關鍵字并發執行這兩個任務。這樣做可以使得上面兩個任務在執行時互不干擾。
最后,我們通過 asyncio.run 方法啟動事件循環。這個方法會自動幫我們創建一個事件循環,然后執行 main 函數。這樣,我們就可以看到輸出如下所示:
開始執行任務一
開始執行任務二
任務二執行完畢
任務一執行完畢
通過以上代碼,我們可以發現,使用 Python 的協程可以方便地實現異步任務的并發執行,提高應用程序的性能。
上一篇mysql創建一張訂單表
下一篇go pb轉json