1.executor 執行緒池頂層介面,只有乙個execute方法,void execute(runnable command);
2.executorservice介面繼承於executor介面
3.executors 是操作executor的工具類
executors 能建立各種型別的執行緒池
1.executors .newfixedthreadpool(fix) 建立固定執行緒池數量的執行緒池
2.executors. newcachedthreadpool 建立無界線程池
3.executors.newscheduledthreadpool(corepoolsize)建立指定時間之後執行的執行緒池,需要使用scheduledexecutorservice的schedule方法
4.executors.newsinglethreadexecutor 建立單個執行緒的執行緒池
執行緒池原理分析:
executors工廠類的new***thredexecutor()方法建立的執行緒都是通過例項化threadpoolexecutor實現的
threadpoolexecutor常用的構造方法:
public threadpoolexecutor(int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit, blockingqueueworkqueue,threadfactory threadfactory,rejectedexecutionhandler handler)
corepoolsize
核心執行緒數,預設情況下核心執行緒會一直存活,即使處於閒置狀態也不會受存keepalivetime限制。除非將allowcorethreadtimeout設定為true。
maximumpoolsize
執行緒池所能容納的最大執行緒數。超過這個數的執行緒將被阻塞。當任務隊列為沒有設定大小的linkedblockingdeque時,這個值無效。(如果佇列裡面的值滿了,最大執行緒池數會再啟執行緒執行任務)
keepalivetime
非核心執行緒的閒置超時時間,超過這個時間就會被**。
unit
指定keepalivetime的單位,如timeunit.seconds。當將allowcorethreadtimeout設定為true時對corepoolsize生效。
workqueue
執行緒池中的任務佇列.
常用的有三種佇列,synchronousqueue(不放資料,一有任務立即執行),linkedblockingdeque(無限佇列。也可以構造有個數的佇列)
threadfactory
執行緒工廠,提供建立新執行緒的功能。threadfactory是乙個介面,只有乙個方法
public inte***ce threadfactory
通過執行緒工廠可以對執行緒的一些屬性進行定製。
Java執行緒池的使用總結
執行緒池工廠類executors介紹 jdk提供的常用的執行緒池介面有兩個 executor和executorservice.executor是基礎介面,只提供了乙個提交任務的方法 void execute runnable command executorservice是executor的子介面,...
執行緒池技術
由於時間有限,我簡單說一下,然後附上乙個例子。例子是別人寫的,找不到遠處,但我看了下 寫的很好。有些應用,需要大量開闢執行緒來處理事務,但處理完後,執行緒退出。比如web伺服器,比如同時有n k使用者來訪問的話,那同時就要有n k個執行緒 這麼多的執行緒排程同時存在肯定是不怎麼有利於系統效能的,而且...
池化技術 執行緒池
執行緒池 任務 等待任務 全域性的任務佇列queue無任務且無銷毀,任務新增函式 等待add的signal 載入任務 add將新建任務指標task賦予queue 執行任務 執行緒池內任一rtn獲取當前佇列的頭 第乙個任務task 執行,並將此任務從佇列中剔除 退出執行緒池內某一rtn 根據實際的程式...