在網(wǎng)上搜索,都只會(huì)講類似使用ExecutorServices=Executors.newFixedThreadPool(5);這種方式來(lái)創(chuàng)建我想問(wèn)的是:在一個(gè)請(qǐng)求需要處理很復(fù)雜的運(yùn)算時(shí),使用線程池,那么是直接在方法里面new一個(gè)出來(lái),使用完之后關(guān)閉掉?還是使用單例模式創(chuàng)建一個(gè)全局的線程池.我不是很理解這個(gè)如果說(shuō)每次請(qǐng)求new一個(gè)線程池出來(lái)的話,在高并發(fā)下,是不是存在很多個(gè)線程池,那么內(nèi)存應(yīng)該會(huì)溢出的啊.但如果只創(chuàng)建一個(gè)線程池,在高并發(fā)下,無(wú)數(shù)的請(qǐng)求都排隊(duì)使用那幾個(gè)固定的線程,不是更慢了嗎?java里面每個(gè)web請(qǐng)求過(guò)來(lái)都是一個(gè)線程,不使用線程池的話,自己的線程處理自己的事情,比所有請(qǐng)求共用一個(gè)線程池快得多吧.我不知道我這么想對(duì)不對(duì).但是我使用apache的ab同時(shí)請(qǐng)求1000次的話,不使用線程池比使用單例的線程池快很多很多.希望大佬來(lái)幫小弟解惑.
在線等!線程池在項(xiàng)目中怎么使用的疑惑各位有什么建議?
慕慕森
2019-06-21 16:45:05