首頁>Club>
1
回覆列表
  • 1 # 使用者834195712159

    1. Task 概念及用法

    Task,是 python 中與事件迴圈進行互動的一種主要方式。

    建立 Task,意思就是把協程封裝成 Task 例項,並追蹤協程的 執行 / 完成狀態,用於未來獲取協程的結果。

    Task 核心作用:在事件迴圈中新增多個併發任務;

    具體來說,是透過 asyncio.create_task() 建立 Task,讓協程物件加入時事件迴圈中,等待被排程執行。

    注意:Python 3.7 以後的版本支援 asyncio.create_task(),在此之前的寫法為 loop.create_task(),開發過程中需要注意程式碼寫法對不同版本 python 的相容性。

    需要指出的是,協程封裝為 Task 後不會立馬啟動,當某個程式碼 await 這個 Task 的時候才會被執行。

    當多個 Task 被加入一個 task_list 的時候,新增 Task 的過程中 Task 不會執行,必須要用 await asyncio.wait() 或 await asyncio.gather() 將 Task 物件加入事件迴圈中非同步執行。

    一般在開發中,常用的寫法是這樣的:

    -- 先建立 task_list 空列表;

    -- 然後用 asyncio.create_task() 建立 Task;

    -- 再把 Task 物件加入 task_list;

    -- 最後使用 await asyncio.wait 或 await asyncio.gather 將 Task 物件加入事件迴圈中非同步執行。

  • 中秋節和大豐收的關聯?
  • 在工作中,有哪些曾讓你引以為傲的經歷?