1、線程池原理
創(chuàng)建一個線程,需要一個Thread對象和一個Runable接口實例。每次都去new一個Thread對象是很耗費時間的,而且不好管
理。線程池就是為了復用已存在的Thread對象,防止不停地創(chuàng)建Thread對象帶來的性能損耗。
2、線程池流程流程總的說明
線程池中會有一個HashSet,里面存放著Worker對象。這個Worker中會存有一個Thread對象,會使用這個thread執(zhí)行任務。
這個Worker對象的多少代表著線程池的線程容量,每個Worker會從BlockingQueue中獲取你的Runnable實例任務,進行執(zhí)行,
沒有的話,會阻塞在那里,直到獲取到隊列中的任務。
新建線程任務流程1、如果HashSet中的線程數(shù)量沒有達到核心線程數(shù)量,那么就會新創(chuàng)建一個Worker對象,直接執(zhí)行你的任務。
2、如果HashSet中的線程數(shù)量已經(jīng)達到核心的線程大小并且任務隊列沒有滿,不再創(chuàng)建這個Worker對象,會將你的任務放
到隊列中。
3、如果HashSet中的線程數(shù)量已經(jīng)達到核心的線程大小并且任務隊列滿了,那么就會創(chuàng)建Worker對象,直到達到最大線程
數(shù)量為止。
4、如果HashSet中的線程數(shù)量已經(jīng)達到最大線程大小,新來的任務就會被拒掉。
想了解更多相關資訊請關注java培訓頻道-查看更多,了解相關專業(yè)課程信息您可在線咨詢也可免費申請試課。關注賦能網(wǎng)了解更多:4008-569-579
本文鏈接:
本文章“Java學習小知識之線程池”已幫助 59 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產(chǎn)權侵權的法律責任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579