執行緒池引數

2021-09-24 13:45:33 字數 570 閱讀 5362

由於系統頻繁的建立和銷毀執行緒,因而使用執行緒池讓建立的執行緒進行復用

1.corepoolsize:指定了執行緒池中的執行緒數量

2.maximumpoolsize:執行緒池中最大執行緒數量

3.keepalivetime:當執行緒池中的執行緒數超過corepoolsize,多餘的空閒的執行緒的存活時間。即,超過corepoolsize的空閒執行緒,在多長時間內,會被銷毀。

4.unit:keepalivetime的時間單位

5.workqueue:任務佇列,被提交但是還沒被執行的任務。是bockingqueue介面的物件,僅用於放置runnable物件

6.threadfactory:執行緒工廠,用於建立執行緒,一般用預設的 最開始的執行緒由threadfactory呼叫newthread()建立

7.handler:拒絕策略,當太多工來不及處理,如何拒絕任務。4種

設n為cpu的總核數

cpu密集(計算密集,大部分時間cpu在計算),執行緒池大小=n+1

io密集(大部分時間執行緒在等磁碟讀寫),執行緒池大小=2n+1

執行緒等待時間越高,需要越多執行緒;執行緒cpu時間越高,需要越少執行緒

執行緒池引數

我把執行緒池引數給做個形象的比喻,執行緒池 就好比乙個水池,池底有n個小洞,就是核心執行緒數量n,最大執行緒數量就是這個池子能裝多少個桌球,等待佇列 就是池子之外的一塊地方,有的佇列是有界的,就是大小固定,有的是無界的,大小不固定。任務 就是把桌球丟到池子中,讓桌球從池底的小洞掉下去。相當於執行緒的...

Java 執行緒池引數

threadpoolexecutor是執行緒池的真正實現,他通過構造方法的一系列引數 不同的構造方法 來構成不同配置的執行緒池。拒絕策略,是乙個介面,可以自己實現自定義的拒絕策略。當執行緒數已經達到maxpoolsize,切佇列已滿,會拒絕新任務 當執行緒池被呼叫shutdown 後,會等待執行緒池...

執行緒池引數解析

public threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit,blockingqueueworkqueue 引數的意義 corepoolsize 核心池的大小,在建立了執...