您好,登錄后才能下訂單哦!
這篇文章主要講解了“python中Task封裝協程實例”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python中Task封裝協程實例”吧!
說明
1、Task是Future的子類,Task是對協程的封裝,我們把多個Task放在循環調度列表中,等待調度執行。
2、Task對象可以跟蹤任務和狀態。Future(Task是Futrue的子類)為我們提供了異步編程中最終結果的處理(Task類還具有狀態處理功能)。
3、把協程封裝成Task,加入一個隊列等待調用。剛創建Task的時候不執行,遇到await就執行。
實例
import asyncio async def func(): print(1) await asyncio.sleep(2) print(2) return "返回值" async def main(): print("main開始") # 創建協程,將協程封裝到Task對象中并添加到事件循環的任務列表中,等待事件循環去執行(默認是就緒狀態)。 # 在調用 task_list = [ asyncio.create_task(func(), name="n1"), asyncio.create_task(func(), name="n2") ] print("main結束") # 當執行某協程遇到IO操作時,會自動化切換執行其他任務。 # 此處的await是等待所有協程執行完畢,并將所有協程的返回值保存到done # 如果設置了timeout值,則意味著此處最多等待的秒,完成的協程返回值寫入到done中,未完成則寫到pending中。 done, pending = await asyncio.wait(task_list, timeout=None) print(done, pending) asyncio.run(main())
感謝各位的閱讀,以上就是“python中Task封裝協程實例”的內容了,經過本文的學習后,相信大家對python中Task封裝協程實例這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。