python Async/Await 異步函數中互相調用

 

# demo.py
import asyncio, time
# asyncio.wait() 等待執行完成
async def foo():
    await asyncio.sleep(2)
    return 50
async def main():
    task = asyncio.Task(foo())
    # 執行其他任務
    print('看看會不會提前出現...')
    done, pending = await asyncio.wait({task}) # 啓動協程 並創建一個等待對象
    # 手動在這裏等待
    print(pending)
    if task in done: # 當task出現在done中時,說明任務已經完成,可以退出
        print(task)
    # 問題:如果我們想想nodejs 那樣 任務再一開始就被執行,如果它是耗時操作,但它不會影響後面代碼的執行?
if __name__=="__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    loop.close()

發佈了95 篇原創文章 · 獲贊 54 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章