線程池有哪些參數,各個參數的作用是什麼?
文章目錄
-
- 線程池有哪些參數,各個參數的作用是什麼?
-
- corePoolSize(核心工作線程數):
- maximumPoolSize(最大線程數):
- keepAliveTime(多餘線程存活時間):
- workQueue(隊列):
- threadFactory(線程建立工廠):
- handler(拒絕政策):
線程池主要有如下6個參數:
corePoolSize(核心工作線程數):
當向線程池送出一個任務時,
若線程池已建立的線程數小于corePoolSize,
即便此時存在空閑線程,
也會通過建立一個新線程來執行該任務,
直到已建立的線程數大于或等于corePoolSize時。
maximumPoolSize(最大線程數):
線程池所允許的最大線程個數。
當隊列滿了,且已建立的線程數小于maximumPoolSize,
則線程池會建立新的線程來執行任務。
另外,對于無界隊列,可忽略該參數。
keepAliveTime(多餘線程存活時間):
當線程池中線程數大于核心線程數時,
線程的空閑時間如果超過線程存活時間,
那麼這個線程就會被銷毀,
直到線程池中的線程數小于等于核心線程數。
workQueue(隊列):
用于傳輸和儲存等待執行任務的阻塞隊列。
threadFactory(線程建立工廠):
用于建立新線程。
threadFactory建立的線程也是采用new Thread()方式,
threadFactory建立的線程名都具有統一的風格:
pool-m-thread-n(m為線程池的編号,n為線程池内的線程編号)。
handler(拒絕政策):
當線程池和隊列都滿了,
再加入線程會執行此政策