最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?asyncio.run()?和?asyncio.gather()?的區(qū)別和聯(lián)系

 更新時(shí)間:2025年11月24日 11:03:24   作者:Geoking.  
本文主要介紹?Python?異步編程中?Python?asyncio.run()?和?asyncio.gather()?的區(qū)別和聯(lián)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、一句話總結(jié)

函數(shù)作用調(diào)用位置類比理解
asyncio.run()啟動(dòng)并運(yùn)行整個(gè)異步程序(事件循環(huán))?? 程序入口(只能用一次)“開發(fā)動(dòng)機(jī)”
asyncio.gather()在事件循環(huán)中并發(fā)執(zhí)行多個(gè)協(xié)程?? 事件循環(huán)內(nèi)部“讓多輛車一起跑”

二、核心區(qū)別詳解

1、asyncio.run(): 啟動(dòng)事件循環(huán)

? 功能

  • 創(chuàng)建并啟動(dòng)一個(gè)新的事件循環(huán)(Event Loop)
  • 執(zhí)行指定的頂層協(xié)程
  • 在協(xié)程完成后,自動(dòng)關(guān)閉事件循環(huán)

?? 示例

import asyncio

async def main():
    print("Hello asyncio")

asyncio.run(main())

運(yùn)行輸出:

Hello asyncio

?? 用法要點(diǎn)

  • asyncio.run() 只能在普通函數(shù)或腳本入口使用
  • 在已經(jīng)運(yùn)行的事件循環(huán)中(如 Jupyter Notebook)不能再次調(diào)用

?? 錯(cuò)誤示例

async def inner():
    asyncio.run(other())  # ? 不行!

會(huì)報(bào)錯(cuò):

RuntimeError: asyncio.run() cannot be called from a running event loop

2、asyncio.gather(): 并發(fā)執(zhí)行多個(gè)協(xié)程

? 功能

  • 已經(jīng)運(yùn)行的事件循環(huán)中,同時(shí)調(diào)度多個(gè)協(xié)程執(zhí)行
  • 等待所有協(xié)程完成后,返回所有結(jié)果

?? 示例

import asyncio

async def task(name, delay):
    await asyncio.sleep(delay)
    print(f"{name} 完成")
    return name

async def main():
    results = await asyncio.gather(
        task("任務(wù)A", 2),
        task("任務(wù)B", 1),
    )
    print("全部完成:", results)

asyncio.run(main())

輸出:

任務(wù)B 完成
任務(wù)A 完成
全部完成: ['任務(wù)A', '任務(wù)B']

說(shuō)明:

  • gather() 同時(shí)啟動(dòng)多個(gè)任務(wù)
  • 自動(dòng)等待它們?nèi)繄?zhí)行完成

三、二者的關(guān)系(重要)

其實(shí),run()gather() 經(jīng)常是配合使用的:

import asyncio

async def task(n):
    await asyncio.sleep(1)
    return n

async def main():
    # gather 在 run 的內(nèi)部運(yùn)行
    results = await asyncio.gather(task(1), task(2), task(3))
    print(results)

# run 是最外層入口
asyncio.run(main())

執(zhí)行順序:
1.asyncio.run() 啟動(dòng)事件循環(huán)
2.main() 被執(zhí)行
3.asyncio.gather() 在循環(huán)中同時(shí)啟動(dòng)多個(gè)任務(wù)
4.所有任務(wù)完成后返回結(jié)果
5.事件循環(huán)關(guān)閉

四、形象的比喻

概念類比
asyncio.run()開動(dòng)車子,啟動(dòng)引擎
async def main()定義駕駛計(jì)劃
asyncio.gather()讓多個(gè)司機(jī)同時(shí)開不同的車去執(zhí)行任務(wù)

五、總結(jié)對(duì)比表格

特性asyncio.run()asyncio.gather()
功能啟動(dòng)事件循環(huán)并執(zhí)行主協(xié)程并發(fā)運(yùn)行多個(gè)協(xié)程
作用范圍程序最外層入口程序內(nèi)部(事件循環(huán)中)
是否創(chuàng)建事件循環(huán)? 是? 否
是否關(guān)閉事件循環(huán)? 自動(dòng)關(guān)閉? 不負(fù)責(zé)
返回結(jié)果主協(xié)程的返回值所有協(xié)程的返回結(jié)果(list/tuple)
可用次數(shù)通常只用一次可多次調(diào)用
場(chǎng)景啟動(dòng)異步程序并發(fā)執(zhí)行任務(wù)

六、小結(jié)

結(jié)論說(shuō)明
asyncio.run()程序入口,用來(lái)啟動(dòng)整個(gè)異步環(huán)境
asyncio.gather()運(yùn)行多個(gè)任務(wù),實(shí)現(xiàn)真正的并發(fā)執(zhí)行
二者關(guān)系run() 啟動(dòng)事件循環(huán),gather() 在循環(huán)中調(diào)度任務(wù)
使用建議永遠(yuǎn)只在最外層使用 run(),在內(nèi)部用 gather()

到此這篇關(guān)于Python asyncio.run() 和 asyncio.gather() 的區(qū)別和聯(lián)系的文章就介紹到這了,更多相關(guān)Python asyncio.run() asyncio.gather()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)匯聚層理解

    Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)匯聚層理解

    通常當(dāng)我們處理圖像時(shí),我們希望逐漸降低隱藏表示的空間分辨率,聚集信息,這樣隨著我們?cè)谏窠?jīng)網(wǎng)絡(luò)層疊的上升,每個(gè)神經(jīng)元對(duì)其敏感的感受野(輸入)就越大
    2021-10-10
  • python實(shí)戰(zhàn)教程之自動(dòng)掃雷

    python實(shí)戰(zhàn)教程之自動(dòng)掃雷

    用python實(shí)現(xiàn)掃雷,非常有意思,這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)自動(dòng)掃雷的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • pytorch網(wǎng)絡(luò)模型構(gòu)建場(chǎng)景的問(wèn)題介紹

    pytorch網(wǎng)絡(luò)模型構(gòu)建場(chǎng)景的問(wèn)題介紹

    這篇文章主要介紹了pytorch網(wǎng)絡(luò)模型構(gòu)建場(chǎng)景的注意點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-03-03
  • Python基于回溯法子集樹模板解決最佳作業(yè)調(diào)度問(wèn)題示例

    Python基于回溯法子集樹模板解決最佳作業(yè)調(diào)度問(wèn)題示例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決最佳作業(yè)調(diào)度問(wèn)題,簡(jiǎn)單說(shuō)明了作業(yè)調(diào)度問(wèn)題并結(jié)合實(shí)例形式給出了Python使用回溯法子集樹模板實(shí)現(xiàn)最佳作業(yè)調(diào)度問(wèn)題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python模塊學(xué)習(xí)之subprocess詳解

    Python模塊學(xué)習(xí)之subprocess詳解

    subprocess是Python?2.4中新增的一個(gè)模塊,它允許你生成新的進(jìn)程,連接到它們的?input/output/error?管道,并獲取它們的返回(狀態(tài))碼,下面小編就來(lái)和大家聊聊它的具體使用吧
    2023-08-08
  • 淺談Python中threading join和setDaemon用法及區(qū)別說(shuō)明

    淺談Python中threading join和setDaemon用法及區(qū)別說(shuō)明

    這篇文章主要介紹了淺談Python中threading join和setDaemon用法及區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Pycharm激活方法及詳細(xì)教程(詳細(xì)且實(shí)用)

    Pycharm激活方法及詳細(xì)教程(詳細(xì)且實(shí)用)

    這篇文章主要介紹了Pycharm激活方法及詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-05-05
  • Python二維碼生成庫(kù)qrcode安裝和使用示例

    Python二維碼生成庫(kù)qrcode安裝和使用示例

    這篇文章主要介紹了Python二維碼生成庫(kù)qrcode安裝和使用示例,本文講解了qrcode的安裝、生成二維碼、生成帶圖標(biāo)的二維碼等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • ActiveMQ:使用Python訪問(wèn)ActiveMQ的方法

    ActiveMQ:使用Python訪問(wèn)ActiveMQ的方法

    今天小編就為大家分享一篇ActiveMQ:使用Python訪問(wèn)ActiveMQ的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python判斷字符串是否是回文的方法小結(jié)

    python判斷字符串是否是回文的方法小結(jié)

    回文,英文叫 palindrome,意思是一個(gè)字符串,從前往后讀 和 從后往前讀 是一模一樣的,本文給大家介紹了python判斷字符串是否是回文的方法小結(jié),需要的朋友可以參考下
    2025-08-08

最新評(píng)論

和田县| 木里| 峨山| 嘉黎县| 江阴市| 确山县| 淮北市| 张家界市| 馆陶县| 繁峙县| 常州市| 双牌县| 樟树市| 澳门| 东平县| 从江县| 嘉善县| 鹿邑县| 陵水| 西吉县| 康乐县| 福清市| 林州市| 双辽市| 陆川县| 调兵山市| 巫山县| 长垣县| 资中县| 木兰县| 田阳县| 梧州市| 中宁县| 平泉县| 噶尔县| 蛟河市| 双牌县| 岳阳市| 德安县| 剑川县| 京山县|