python Task在協程調用實例講解
Tasks用于并發調度協程,通過asyncio.create_task(協程對象)創建Task對象,使協程能夠加入事件循環,等待調度執行。除使用asyncio.create_task()函數外,還可使用低級loop.create_task()或ensure_future()函數。推薦使用手動實例Task對象。
2、使用注意Python3.7中添加到asyncio.create_task函數。在Python3.7之前,可以使用低級asyncio.ensure_future函數。
3、實例import asyncio async def func(): print(1) await asyncio.sleep(2) print(2) return '返回值' async def main(): print('main開始') # 創建協程,將協程封裝到一個Task對象中并立即添加到事件循環的任務列表中,等待事件循環去執行(默認是就緒狀態)。 task1 = asyncio.create_task(func()) # 創建協程,將協程封裝到一個Task對象中并立即添加到事件循環的任務列表中,等待事件循環去執行(默認是就緒狀態)。 task2 = asyncio.create_task(func()) print('main結束') # 當執行某協程遇到IO操作時,會自動化切換執行其他任務。 # 此處的await是等待相對應的協程全都執行完畢并獲取結果 ret1 = await task1 ret2 = await task2 print(ret1, ret2)asyncio.run(main())
知識點擴展:
python asyncio 協程調用task步驟
import asyncioasync def compute(x, y): print('Compute %s + %s ...' % (x, y)) await asyncio.sleep(1.0) return x + yasync 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()
到此這篇關于python Task在協程調用實例講解的文章就介紹到這了,更多相關python Task如何在協程調用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: