1. 程式人生 > 其它 >python async非同步程式設計,await後接task(三)

python async非同步程式設計,await後接task(三)

接著上一篇內容繼續:https://www.cnblogs.com/liyuanhong/p/15617141.html

官方文件:https://docs.python.org/zh-cn/3.7/library/asyncio-task.html

# coding: utf-8
import asyncio

async def func1():
    print("1")
    await asyncio.sleep(2)
    print("2")
    return "result"

async def main1():
    print("主執行緒開始")
    task1 = asyncio.create_task(func1())
    task2 
= asyncio.create_task(func1()) print("主執行緒結束") res1 = await task1 res2 = await task2 print(res1) print(res2) # 建立時間迴圈同時執行task asyncio.run(main1())

一般情況下,用下面這種方式去寫:

# coding: utf-8
import asyncio

async def func1():
    print("1")
    await asyncio.sleep(2)
    print("2")
    
return "result" async def main2(): print("主執行緒開始") tasks = [ asyncio.create_task(func1()), asyncio.create_task(func1()) ] print("主執行緒結束") # 兩個任務都完成,他們的返回值會返回給done done,pendding = await asyncio.wait(tasks) print(done) print(pendding) asyncio.run(main2())
部落格裡大都是轉載的內容,其目的主要使用者知識的組織和管理。