python 加快程序運(yùn)行問題
問題描述
假設(shè):
def get(url): #這里是get請求 return urlfor i in urls: get(i)#這里采用循環(huán)去調(diào)用請求#這樣速度好像比較慢,有什么方法可以#當(dāng)多個(gè)請求時(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:最簡單的改造就是用multiprocessing.dummy 執(zhí)行多線程任務(wù),可以查一下,設(shè)置好線程數(shù)量,然后對程序不需要太大改造,大體就能用。
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)3. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫4. mysql取模分表與分表5. gvim - 誰有vim里CSS的Indent文件, 能縮進(jìn)@media里面的6. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號?正則如何寫?7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤8. PHP類屬性聲明?9. objective-c - ios 怎么實(shí)現(xiàn)微信聯(lián)系列表 最好是swift10. java - 安卓接入微信登錄,onCreate不會執(zhí)行
