1. 程式人生 > >JAVA後端面試題(持續更新~~~~)

JAVA後端面試題(持續更新~~~~)

JAVA後端面試題(持續更新~~~~)

(一)執行緒池的原理,為什麼建立執行緒池?建立執行緒池的方式

執行緒池實現原理:

1.判斷執行緒池中的核心執行緒是否都在執行任務,如果不是則建立一個新的工作執行緒來執行任務
2.如果核心執行緒都在執行任務,則判斷任務佇列是否已滿,如果沒滿,就將任務儲存進任務佇列中
3.如果任務佇列已滿,則判斷執行緒池中的執行緒是否達到最大執行緒數量,如果達到則進行相應的拒絕處理策略,否則建立一個新的執行緒執行任務

為什麼建立執行緒池?
減少執行緒建立和銷燬執行緒的次數,每個工作執行緒都可以重複使用
根據系統的承受能力,調整執行緒池中工作執行緒的數量,防止因消耗過多記憶體導致伺服器崩潰

 建立執行緒池方式:

public ThreadPoolExecutor(int corePoolSize, //核心執行緒數量
int maximumPoolSize, //最大執行緒數量
long keepAliveTime, //空餘執行緒最大存活時間
TimeUnit unit, //存活時間單位
BlockingQueue<Runnable> workQueue, //任務佇列
RejectedExecutionHandler handler) //處理策略