<label id="bh7tp"><big id="bh7tp"></big></label>

<em id="bh7tp"><tr id="bh7tp"><u id="bh7tp"></u></tr></em>
<th id="bh7tp"></th>

<li id="bh7tp"><acronym id="bh7tp"></acronym></li>
  • <em id="bh7tp"></em>

    <tbody id="bh7tp"><pre id="bh7tp"></pre></tbody>
  • Python教程自學網歡迎您來學習!
    當前位置: 首頁 > Pyhon開發 > python中Task封裝協程

    python中Task封裝協程

       

    python中Task封裝協程

    Task封裝協程說明

    1、Task是Future的子類,Task是對協程的封裝,我們把多個Task放在循環調度列表中,等待調度執行。

    2、Task對象可以跟蹤任務和狀態。Future(Task是Futrue的子類)為我們提供了異步編程中最終結果的處理(Task類還具有狀態處理功能)。

    3、把協程封裝成Task,加入一個隊列等待調用。剛創建Task的時候不執行,遇到await就執行。

    Task封裝協程實例

    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())
    人人爽人人澡人人人妻
    <label id="bh7tp"><big id="bh7tp"></big></label>

    <em id="bh7tp"><tr id="bh7tp"><u id="bh7tp"></u></tr></em>
    <th id="bh7tp"></th>

    <li id="bh7tp"><acronym id="bh7tp"></acronym></li>
  • <em id="bh7tp"></em>

    <tbody id="bh7tp"><pre id="bh7tp"></pre></tbody>