python中Task庫的作用?
1. Task 概念及用法
Task,是 python 中與事件循環(huán)進行交互的一種主要方式。
創(chuàng)建 Task,意思就是把協(xié)程封裝成 Task 實例,并追蹤協(xié)程的 運行 / 完成狀態(tài),用于未來獲取協(xié)程的結果。
Task 核心作用:在事件循環(huán)中添加多個并發(fā)任務;
具體來說,是通過 asyncio.create_task() 創(chuàng)建 Task,讓協(xié)程對象加入時事件循環(huán)中,等待被調度執(zhí)行。
注意:Python 3.7 以后的版本支持 asyncio.create_task(),在此之前的寫法為 loop.create_task(),開發(fā)過程中需要注意代碼寫法對不同版本 python 的兼容性。
需要指出的是,協(xié)程封裝為 Task 后不會立馬啟動,當某個代碼 await 這個 Task 的時候才會被執(zhí)行。
當多個 Task 被加入一個 task_list 的時候,添加 Task 的過程中 Task 不會執(zhí)行,必須要用 await asyncio.wait() 或 await asyncio.gather() 將 Task 對象加入事件循環(huán)中異步執(zhí)行。
一般在開發(fā)中,常用的寫法是這樣的:
-- 先創(chuàng)建 task_list 空列表;
-- 然后用 asyncio.create_task() 創(chuàng)建 Task;
-- 再把 Task 對象加入 task_list;
-- 最后使用 await asyncio.wait 或 await asyncio.gather 將 Task 對象加入事件循環(huán)中異步執(zhí)行。