python 加快程序運(yùn)行問(wèn)題
問(wè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í),也可以快速完成程序
謝謝了
問(wèn)題解答
回答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. 點(diǎn)擊頁(yè)面就自動(dòng)輸入到mysql.求解2. java - IDEA從SVN檢出項(xiàng)目 并在tomcat上運(yùn)行 求詳細(xì)流程3. node.js - nodejs使用formidable上傳文件問(wèn)題4. javascript - windos下第一次用Django無(wú)法正確創(chuàng)建工程目錄5. node.js - 帶有node_modules目錄的項(xiàng)目,用phpstorm打開速度極慢,怎么解決?6. java - 多叉樹求值,程序高手,算法高手看過(guò)來(lái)7. javascript - JS用ajax爬取百度外賣店家信息8. android - 安卓做前端,PHP做后臺(tái)服務(wù)器 有什么需要注意的?9. html5 - 有人做過(guò)防微信app界面的H5 demo嗎?10. css - 請(qǐng)問(wèn)B站頂部的模糊半透明導(dǎo)航條是怎么實(shí)現(xiàn)的呢?
