您好,登錄后才能下訂單哦!
小編給大家分享一下使用python線程池的好處是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
1、使用好處
提高性能:由于減去了大量新建終止線程的費(fèi)用,重用了線程資源;
適用場景:適用于處理大量突發(fā)請求或需要大量線程完成任務(wù),但實(shí)際任務(wù)處理時間短。
防御功能:可以有效避免系統(tǒng)因線程過多而導(dǎo)致系統(tǒng)負(fù)載過大而相應(yīng)變慢的問題。
代碼優(yōu)勢:使用線程池的語法比創(chuàng)建自己的線程更簡單。
2、實(shí)例
import concurrent.futures import requests from 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] # 那鏈接和標(biāo)題拿出來 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())
以上是“使用python線程池的好處是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。