我們都知道線程池中很多的參數,了解這些參數的意義對實際問題的定義和解決是非常重要的,本文將會重點介紹:corePoolsize、maxPoolSize、keeyAliveTime、ThreadFactory、workQueue及Handler
corePoolSize
核心線程數,即就是中線程池中長時間穩定存活的線程數
maxPoolSize
最大線程數,重點強調線程中最大可包含的線程數。最大線程數的上限需要根據實際情況而定
keepAliveTime
線程的存活時間,該參數是指非核心線程的存活時間,用來嚴格控制線程池中線程的數量盡可能的保持在一定的范圍內,若要修改核心線程的存活時長,可參考相關參數
ThreadFactory
線程創建的工廠,新的線程都是由ThreadFactory創建的,系統默認使用的是Executors.defaultThreadFactory創建的,用它創建出來的線程的優先級、組等都是一樣的,並且他都不是守護線程。我們也可以使用自定義的線程創建工廠,並對相關的值進行修改
WorkQueue
線程的工作隊列,常見的類型有三種,如下
1.直接交換:SynchronousQueue,任務不多,是沒有容量的,maxPoolSize需要大一點
2.無界隊列:LinkedBlockingQueue,可產生OOM
3.有界隊列:ArrayBlockingQueue