亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

python線程池的四種好處總結(jié)

瀏覽:2日期:2022-06-20 18:36:12
1、使用好處

提高性能:由于減去了大量新建終止線程的費用,重用了線程資源;

適用場景:適用于處理大量突發(fā)請求或需要大量線程完成任務(wù),但實際任務(wù)處理時間短。

防御功能:可以有效避免系統(tǒng)因線程過多而導(dǎo)致系統(tǒng)負載過大而相應(yīng)變慢的問題。

代碼優(yōu)勢:使用線程池的語法比創(chuàng)建自己的線程更簡單。

2、實例

'''@file : 004-線程池的使用.py@author : xiaolu@email : luxiaonlp@163.com@time : 2021-02-01'''import concurrent.futuresimport requestsfrom bs4 import BeautifulSoup def craw(url): # 爬取網(wǎng)頁內(nèi)容 r = requests.get(url) return r.text def parse(html): # 解析其中的內(nèi)容 soup = BeautifulSoup(html, 'html.parser') links = soup.find_all('a', class_='post-item-title') return [(link['href'], link.get_text()) for link in links] # 那鏈接和標題拿出來 if __name__ == ’__main__’: # 待爬取的網(wǎng)頁鏈接 urls = ['https://www.cnblogs.com/sitehome/p/{}'.format(page) for page in range(1, 50 + 1) ] # craw with concurrent.futures.ThreadPoolExecutor() as pool:htmls = pool.map(craw, urls)htmls = list(zip(urls, htmls))for url, html in htmls: print(url, len(html)) print('craw over')# parse with concurrent.futures.ThreadPoolExecutor() as pool:futures = {}for url, html in htmls: future = pool.submit(parse, html) futures[future] = url # for future, url in futures.items():# print(url, future.result()) for future in concurrent.futures.as_completed(futures): url = futures[future] print(url, future.result())

知識點補充:

線程池的使用

線程池的基類是 concurrent.futures 模塊中的 Executor,Executor 提供了兩個子類,即 ThreadPoolExecutor 和ProcessPoolExecutor,其中 ThreadPoolExecutor 用于創(chuàng)建線程池,而 ProcessPoolExecutor 用于創(chuàng)建進程池。

如果使用線程池/進程池來管理并發(fā)編程,那么只要將相應(yīng)的 task 函數(shù)提交給線程池/進程池,剩下的事情就由線程池/進程池來搞定。

Exectuor 提供了如下常用方法:

submit(fn, *args, **kwargs):將 fn 函數(shù)提交給線程池。*args 代表傳給 fn 函數(shù)的參數(shù),*kwargs 代表以關(guān)鍵字參數(shù)的形式為 fn 函數(shù)傳入?yún)?shù)。

map(func, *iterables, timeout=None, chunksize=1):該函數(shù)類似于全局函數(shù) map(func, *iterables),只是該函數(shù)將會啟動多個線程,以異步方式立即對 iterables 執(zhí)行 map 處理。

shutdown(wait=True):關(guān)閉線程池。

程序?qū)?task 函數(shù)提交(submit)給線程池后,submit 方法會返回一個 Future 對象,F(xiàn)uture 類主要用于獲取線程任務(wù)函數(shù)的返回值。由于線程任務(wù)會在新線程中以異步方式執(zhí)行,因此,線程執(zhí)行的函數(shù)相當于一個“將來完成”的任務(wù),所以 Python 使用 Future 來代表。

到此這篇關(guān)于python線程池的四種好處總結(jié)的文章就介紹到這了,更多相關(guān)python線程池的四種好處歸納內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 青草免费免费观看视频在线 | 久久精品播放 | 在线观看色 | 亚洲一色 | 最新国产网址 | 欧美国产亚洲精品a第一页 欧美国产亚洲一区 | 国产主播福利精品一区二区 | 精品免费视在线视频观看 | 91在线视屏 | 成人 在线欧美亚洲 | 57pao一国产成视频永久免费 | 小明精品国产一区二区三区 | 日韩在线一区二区三区免费视频 | 幸福宝色多多 | 最新国产三级久久 | 久久视频在线播放视频99re6 | 久久久久琪琪免费影院 | 国产高清大尺度一区二区不卡 | 国产又色又爽黄的网站免费 | 成人看片毛片免费播放器 | 久久中文字幕网站篠田优 | 亚洲高清在线观看 | 黄色片一级毛片 | 久久精品免费全国观看国产 | 黄色成年人 | 黑人性视频做爰全过程视频 | 成人毛片18岁女人毛片免费看 | 亚洲国产婷婷俺也色综合 | 一本到不卡 | 国产a毛片清高视频 | 国产成人精品日本亚洲专 | 国产美女小视频 | 九九热线有精品视频99 | 亚洲午夜国产片在线观看 | 中国免费观看的视频 | 免费的一级黄色片 | 国产精品视_精品国产免费 国产精品视频一区二区三区 | 国产精品爱久久电影 | 国产高清一级视频在线观看 | 亚洲国产一区二区三区 | 国产精品日韩高清在线蜜芽 |