java執行緒池技術總結

2021-08-31 01:40:04 字數 1498 閱讀 2540

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 根據實際的程式...