python Task在協(xié)程調(diào)用實例講解
1、說明
Tasks用于并發(fā)調(diào)度協(xié)程,通過asyncio.create_task(協(xié)程對象)創(chuàng)建Task對象,使協(xié)程能夠加入事件循環(huán),等待調(diào)度執(zhí)行。除使用asyncio.create_task()函數(shù)外,還可使用低級loop.create_task()或ensure_future()函數(shù)。推薦使用手動實例Task對象。
2、使用注意
Python3.7中添加到asyncio.create_task函數(shù)。在Python3.7之前,可以使用低級asyncio.ensure_future函數(shù)。
3、實例
import asyncio async def func(): print(1) await asyncio.sleep(2) print(2) return "返回值" async def main(): print("main開始") # 創(chuàng)建協(xié)程,將協(xié)程封裝到一個Task對象中并立即添加到事件循環(huán)的任務(wù)列表中,等待事件循環(huán)去執(zhí)行(默認(rèn)是就緒狀態(tài))。 task1 = asyncio.create_task(func()) # 創(chuàng)建協(xié)程,將協(xié)程封裝到一個Task對象中并立即添加到事件循環(huán)的任務(wù)列表中,等待事件循環(huán)去執(zhí)行(默認(rèn)是就緒狀態(tài))。 task2 = asyncio.create_task(func()) print("main結(jié)束") # 當(dāng)執(zhí)行某協(xié)程遇到IO操作時,會自動化切換執(zhí)行其他任務(wù)。 # 此處的await是等待相對應(yīng)的協(xié)程全都執(zhí)行完畢并獲取結(jié)果 ret1 = await task1 ret2 = await task2 print(ret1, ret2) asyncio.run(main())
知識點擴(kuò)展:
python asyncio 協(xié)程調(diào)用task步驟
import asyncio async def compute(x, y): print("Compute %s + %s ..." % (x, y)) await asyncio.sleep(1.0) return x + y async def print_sum(x, y): result = await compute(x, y) print("%s + %s = %s" % (x, y, result)) loop = asyncio.get_event_loop() loop.run_until_complete(print_sum(1, 2)) loop.close()
到此這篇關(guān)于python Task在協(xié)程調(diào)用實例講解的文章就介紹到這了,更多相關(guān)python Task如何在協(xié)程調(diào)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python scipy的二維圖像卷積運算與圖像模糊處理操作示例
這篇文章主要介紹了Python scipy的二維圖像卷積運算與圖像模糊處理操作,涉及Python數(shù)學(xué)運算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09Python相關(guān)庫設(shè)置技巧保護(hù)你的C盤
這篇文章主要為大家介紹了Python相關(guān)庫設(shè)置,保護(hù)你的C盤技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11python實現(xiàn)多層感知器MLP(基于雙月數(shù)據(jù)集)
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)多層感知器MLP,基于雙月數(shù)據(jù)集,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01淺談selenium如何應(yīng)對網(wǎng)頁內(nèi)容需要鼠標(biāo)滾動加載的問題
這篇文章主要介紹了淺談selenium如何應(yīng)對網(wǎng)頁內(nèi)容需要鼠標(biāo)滾動加載的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03