python 加快程序運(yùn)行問題
問題描述
假設(shè):
def get(url): #這里是get請(qǐng)求 return urlfor i in urls: get(i)#這里采用循環(huán)去調(diào)用請(qǐng)求#這樣速度好像比較慢,有什么方法可以#當(dāng)多個(gè)請(qǐng)求時(shí),也可以快速完成程序
謝謝了
問題解答
回答1:>>> from eventor import Eventor>>> urllist = ['https://a.com', ....]>>> def get(url):# 網(wǎng)絡(luò)IO耗時(shí)return url>>> e = Eventor(threadcount=3, taskunitcount=3, func=get, interval=1)>>> result = e.run_with_tasklist(urllist)>>> print(result)
自己根據(jù)需求選擇 多核多進(jìn)程,還是多線程,協(xié)程加快處理。
詳情移步:https://github.com/kute/eventor
后續(xù)再 加進(jìn) async await,celery worker等
回答2:幾個(gè)方法,并且可以結(jié)合使用
coroutine
multiprocess
multithread
celery worker
回答3:最簡(jiǎn)單的改造就是用multiprocessing.dummy 執(zhí)行多線程任務(wù),可以查一下,設(shè)置好線程數(shù)量,然后對(duì)程序不需要太大改造,大體就能用。
相關(guān)文章:
1. IOS app應(yīng)用軟件的id號(hào)怎么查詢?比如百度貼吧的app-id=4779278132. javascript - 求助canvas繪制半透明的馬賽克?3. 前端 - 請(qǐng)教一下CSS3中translateZ和rotateY書寫順序的問題4. css3 - 我的css用less寫的,eclipse的jsp文件要修改css很麻煩,怎么解決?5. css - linear-gradient無(wú)效是怎么回事?6. 這一年從入門到認(rèn)識(shí)PHP的過程7. css - 一條線兩邊有短線的樣式表怎么寫?8. node.js - 微信第三方平臺(tái)網(wǎng)頁(yè)授權(quán)scope沒有權(quán)限9. node.js - nodejs中的mysql錯(cuò)誤10. python 中如何自動(dòng)安裝第三方庫(kù)?
