第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于python代碼中async和await的問題

關(guān)于python代碼中async和await的問題

叮當(dāng)貓咪 2023-10-26 15:16:29
我不知道如何使用 aync/await。假設(shè)我有這個(gè)功能:async def test():    result = get_db_data() # to get records from db    return result所以,這里的get_data不是一個(gè)異步函數(shù),當(dāng)我調(diào)用test()時(shí),我使用await test()。但我的問題是,代碼被認(rèn)為是異步的,還是我也應(yīng)該制作 get_data 和 async func 并用 wait 調(diào)用它?請(qǐng)我需要幫助注意:我嘗試在測(cè)試函數(shù)中添加await asyncio.sleep(30),并且同時(shí)測(cè)試了2個(gè)請(qǐng)求,所以看起來它正在工作,因?yàn)樗?0秒后返回了兩個(gè)結(jié)果(所以不需要60秒)秒)
查看完整描述

2 回答

?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

背景

這是一個(gè)小例子,希望能幫助你理解。說這是你的功能

async def test(): 
   # does something

現(xiàn)在,我們?yōu)槭裁匆蛊洚惒??比如說,我們必須在另一個(gè)線程方法中使用它。

async def threaded_f():
            result = await test() 
                       # Some random code to get variable Y
            Y = Y + result

現(xiàn)在,使 test() 異步的優(yōu)點(diǎn)是,在 result = test() 行,線程將等待 test() 的結(jié)果,因?yàn)樗姆祷刂瞪院髮⒃诖a中使用。如果它是 void 類型的函數(shù),我們可能不會(huì)等待調(diào)用并讓線程函數(shù)繼續(xù)執(zhí)行。

回答

那么,回答你的問題。是的,您可以使 get_db_data() 異步并等待,因?yàn)樗c threaded_f 函數(shù)中討論的情況相同。結(jié)果需要存儲(chǔ)在變量中。


查看完整回答
反對(duì) 回復(fù) 2023-10-26
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

在回答您的問題時(shí), get_db_data 不會(huì)僅僅因?yàn)樗挥诋惒綔y(cè)試協(xié)程內(nèi)部而被視為異步。

您需要了解事件循環(huán)協(xié)程才能很好地回答您的問題。

如果您的同步例程沒有阻塞,那么您可以擺脫它,但您需要徹底了解它在做什么,以確保它不會(huì)導(dǎo)致意外的延遲。如果您不希望您的程序被 get_db_data 阻止,那么您需要使其可等待,例如協(xié)程。


查看完整回答
反對(duì) 回復(fù) 2023-10-26
  • 2 回答
  • 0 關(guān)注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)