溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在python協(xié)程中調(diào)用Task

發(fā)布時(shí)間:2021-04-26 14:18:26 來(lái)源:億速云 閱讀:259 作者:Leah 欄目:編程語(yǔ)言

怎么在python協(xié)程中調(diào)用Task?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

Python的優(yōu)點(diǎn)有哪些

1、簡(jiǎn)單易用,與C/C++、Java、C# 等傳統(tǒng)語(yǔ)言相比,Python對(duì)代碼格式的要求沒(méi)有那么嚴(yán)格;2、Python屬于開(kāi)源的,所有人都可以看到源代碼,并且可以被移植在許多平臺(tái)上使用;3、Python面向?qū)ο?,能夠支持面向過(guò)程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語(yǔ)言,Python寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見(jiàn)功能。

1、說(shuō)明

Tasks用于并發(fā)調(diào)度協(xié)程,通過(guò)asyncio.create_task(協(xié)程對(duì)象)創(chuàng)建Task對(duì)象,使協(xié)程能夠加入事件循環(huán),等待調(diào)度執(zhí)行。除使用asyncio.create_task()函數(shù)外,還可使用低級(jí)loop.create_task()或ensure_future()函數(shù)。推薦使用手動(dòng)實(shí)例Task對(duì)象。

2、使用注意

Python3.7中添加到asyncio.create_task函數(shù)。在Python3.7之前,可以使用低級(jí)asyncio.ensure_future函數(shù)。

3、實(shí)例

import asyncio
 
 
async def func():
    print(1)
    await asyncio.sleep(2)
    print(2)
    return "返回值"
 
 
async def main():
    print("main開(kāi)始")
    # 創(chuàng)建協(xié)程,將協(xié)程封裝到一個(gè)Task對(duì)象中并立即添加到事件循環(huán)的任務(wù)列表中,等待事件循環(huán)去執(zhí)行(默認(rèn)是就緒狀態(tài))。
    task1 = asyncio.create_task(func())
    # 創(chuàng)建協(xié)程,將協(xié)程封裝到一個(gè)Task對(duì)象中并立即添加到事件循環(huán)的任務(wù)列表中,等待事件循環(huán)去執(zhí)行(默認(rèn)是就緒狀態(tài))。
    task2 = asyncio.create_task(func())
    print("main結(jié)束")
    # 當(dāng)執(zhí)行某協(xié)程遇到IO操作時(shí),會(huì)自動(dòng)化切換執(zhí)行其他任務(wù)。
    # 此處的await是等待相對(duì)應(yīng)的協(xié)程全都執(zhí)行完畢并獲取結(jié)果
    ret1 = await task1
    ret2 = await task2
    print(ret1, ret2)
    
    
asyncio.run(main())

看完上述內(nèi)容,你們掌握怎么在python協(xié)程中調(diào)用Task的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI