執行緒池的實現原理 Java執行緒池實現原理

執行緒池的實現原理 Java執行緒池實現原理

1、java執行緒池的實現原理很簡單,說白了就是一個執行緒集合workerSet和一個阻塞佇列workQueue。當用戶向執行緒池提交一個任務(也就是執行緒)時,執行緒池會先將任務放入workQueue中。workerSet中的執行緒會不斷的從workQueue中獲取執行緒然後執行。當workQueue中沒有任務的時候,worker就會阻塞,直到佇列中有任務了就取出來繼續執行。

2、執行緒池的幾個主要引數的作用

corePoolSize: 規定執行緒池有幾個執行緒(worker)在執行。

maximumPoolSize: 當workQueue滿了,不能新增任務的時候,這個引數才會生效。規定執行緒池最多隻能有多少個執行緒(worker)在執行。

keepAliveTime: 超出corePoolSize大小的那些執行緒的生存時間,這些執行緒如果長時間沒有執行任務並且超過了keepAliveTime設定的時間,就會消亡。

unit: 生存時間對於的單位

workQueue: 存放任務的佇列

threadFactory: 建立執行緒的工廠

handler: 當workQueue已經滿了,並且執行緒池執行緒數已經達到maximumPoolSize,將執行拒絕策略。