歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!
咨詢熱線 400-001-5729
2021-11-11 09:29:17|已瀏覽:271次
1、線程池原理
創(chuàng)建一個(gè)線程,需要一個(gè)Thread對(duì)象和一個(gè)Runable接口實(shí)例。每次都去new一個(gè)Thread對(duì)象是很耗費(fèi)時(shí)間的,而且不好管
理。線程池就是為了復(fù)用已存在的Thread對(duì)象,防止不停地創(chuàng)建Thread對(duì)象帶來(lái)的性能損耗。
2、線程池流程線程池中會(huì)有一個(gè)HashSet,里面存放著Worker對(duì)象。這個(gè)Worker中會(huì)存有一個(gè)Thread對(duì)象,會(huì)使用這個(gè)thread執(zhí)行任務(wù)。
這個(gè)Worker對(duì)象的多少代表著線程池的線程容量,每個(gè)Worker會(huì)從BlockingQueue中獲取你的Runnable實(shí)例任務(wù),進(jìn)行執(zhí)行,
沒(méi)有的話,會(huì)阻塞在那里,直到獲取到隊(duì)列中的任務(wù)。
新建線程任務(wù)流程2、如果HashSet中的線程數(shù)量已經(jīng)達(dá)到核心的線程大小并且任務(wù)隊(duì)列沒(méi)有滿,不再創(chuàng)建這個(gè)Worker對(duì)象,會(huì)將你的任務(wù)放
到隊(duì)列中。
3、如果HashSet中的線程數(shù)量已經(jīng)達(dá)到核心的線程大小并且任務(wù)隊(duì)列滿了,那么就會(huì)創(chuàng)建Worker對(duì)象,直到達(dá)到最大線程
數(shù)量為止。
4、如果HashSet中的線程數(shù)量已經(jīng)達(dá)到最大線程大小,新來(lái)的任務(wù)就會(huì)被拒掉。
本文由培訓(xùn)無(wú)憂網(wǎng)牛耳教育專屬課程顧問(wèn)整理發(fā)布,更多課程資訊歡迎關(guān)注培訓(xùn)無(wú)憂網(wǎng)Java培訓(xùn)頻道或添加老師微信:150
3333605010
注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://www.dedgn.cn/news-id-3589.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注java培訓(xùn)頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050