您好,歡迎來到賦能網(wǎng)!

Java學(xué)習(xí)小知識之線程池

賦能網(wǎng) 2023-05-10 59

1、線程池原理

       創(chuàng)建一個線程,需要一個Thread對象和一個Runable接口實(shí)例。每次都去new一個Thread對象是很耗費(fèi)時(shí)間的,而且不好管

理。線程池就是為了復(fù)用已存在的Thread對象,防止不停地創(chuàng)建Thread對象帶來的性能損耗。

2、線程池流程
       流程總的說明

       線程池中會有一個HashSet,里面存放著Worker對象。這個Worker中會存有一個Thread對象,會使用這個thread執(zhí)行任務(wù)。

個Worker對象的多少代表著線程池的線程容量,每個Worker會從BlockingQueue中獲取你的Runnable實(shí)例任務(wù),進(jìn)行執(zhí)行,

沒有的話,會阻塞在那里,直到獲取到隊(duì)列中的任務(wù)。

      新建線程任務(wù)流程
      1、如果HashSet中的線程數(shù)量沒有達(dá)到核心線程數(shù)量,那么就會新創(chuàng)建一個Worker對象,直接執(zhí)行你的任務(wù)。

      2、如果HashSet中的線程數(shù)量已經(jīng)達(dá)到核心的線程大小并且任務(wù)隊(duì)列沒有滿,不再創(chuàng)建這個Worker對象,會將你的任務(wù)放

到隊(duì)列中。

      3、如果HashSet中的線程數(shù)量已經(jīng)達(dá)到核心的線程大小并且任務(wù)隊(duì)列滿了,那么就會創(chuàng)建Worker對象,直到達(dá)到最大線程

數(shù)量為止。

      4、如果HashSet中的線程數(shù)量已經(jīng)達(dá)到最大線程大小,新來的任務(wù)就會被拒掉。

  想了解更多相關(guān)資訊請關(guān)注java培訓(xùn)頻道-查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請?jiān)囌n。關(guān)注賦能網(wǎng)了解更多:4008-569-579

本文鏈接:

本文章“Java學(xué)習(xí)小知識之線程池”已幫助 59 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: