欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python Task在協(xié)程調(diào)用實例講解

 更新時間:2021年04月26日 08:18:01   作者:小妮淺淺  
在本篇文章里小編給大家整理了一篇關(guān)于python Task如何在協(xié)程調(diào)用的相關(guān)內(nèi)容,有興趣的朋友們可以參考下。

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)文章

最新評論