亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求大佬指點哈!線程池在項目中怎么使用的疑惑

求大佬指點哈!線程池在項目中怎么使用的疑惑

郎朗坤 2019-07-27 00:06:00
在網上搜索,都只會講類似使用ExecutorServices=Executors.newFixedThreadPool(5);這種方式來創建我想問的是:在一個請求需要處理很復雜的運算時,使用線程池,那么是直接在方法里面new一個出來,使用完之后關閉掉?還是使用單例模式創建一個全局的線程池.我不是很理解這個如果說每次請求new一個線程池出來的話,在高并發下,是不是存在很多個線程池,那么內存應該會溢出的啊.但如果只創建一個線程池,在高并發下,無數的請求都排隊使用那幾個固定的線程,不是更慢了嗎?java里面每個web請求過來都是一個線程,不使用線程池的話,自己的線程處理自己的事情,比所有請求共用一個線程池快得多吧.我不知道我這么想對不對.但是我使用apache的ab同時請求1000次的話,不使用線程池比使用單例的線程池快很多很多.希望大佬來幫小弟解惑.
查看完整描述

2 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

通常我的使用方式是靜態變量:
publicstaticfinalExecutorServices=Executors.newFixedThreadPool(5);
.對于你后面說的效率問題,和你的線程池配置有很大關系,假設你的請求為1000個,那么如果你使用線程數為5的線程池當然會比直接new1000個線程來處理更慢.
在我的理解,線程池是用來管理線程的生命周期的,節省的是創建銷毀線程的一部分時間,而和能否加快業務處理時間關系不大.具體的配置需要根據請求量來進行一些參數的配置.
                            
查看完整回答
反對 回復 2019-07-27
  • 2 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號