原始碼閱讀 執行緒池 執行緒池原理(九)相關介面介紹

2021-09-26 10:11:15 字數 1104 閱讀 6519

這篇文章將會介紹:1、threadfactory介面;2、rejectexecutionhandler介面,該文章只是讓眾位知道有這兩個介面存在,無任何深度,不喜,跳過即可

1、threadfactory執行緒工廠介面,用於執行緒池建立執行緒

public

inte***ce

threadfactory

下面是threadpoolexecutor預設採用的執行緒工廠

static

class

defaultthreadfactory

implements

threadfactory

public thread newthread

(runnable r)

}

通過呼叫executors.defaultthreadfactory()獲取defaultthreadfactory

2、rejectedexecutionhandler–當執行緒池的狀態不支援新增新的任務時採取的拒絕策略

執行緒池提供4種實現

1、callerrunspolicy – 使用呼叫者執行緒執行該任務

2、abortpolicy – 丟擲丟擲rejectedexecutionexception異常

3、discardpolicy – 忽略該reject呼叫

4、discardoldestpolicy – 丟棄工作任務佇列中poll出來的第乙個任務

原始碼閱讀 - 執行緒池: 執行緒池原理(二)執行緒池建構函式解析

原始碼閱讀 - 執行緒池:執行緒池原理(三)執行緒池的狀態解析

原始碼閱讀 - 執行緒池:執行緒池原理(四)addworker–execute方法的前奏

原始碼閱讀 - 執行緒池:執行緒池原理(五)乙個execute(runnable)呼叫經歷了什麼?

原始碼閱讀 - 執行緒池:執行緒池原理(六)執行緒的任務排程和執行runwoker

原始碼閱讀 - 執行緒池:執行緒池原理(七)執行緒池的關閉

原始碼閱讀 - 執行緒池:執行緒池原理(八)threadpoolexecutor

原始碼閱讀 - 執行緒池:執行緒池原理(十)worker內部類

執行緒池原始碼閱讀(二)

僅大致過了下,有問題的請指出,謝謝。1.8通過乙個樣本場景了解新增任務流程。執行緒池配置 任務 輸出1,睡眠300s,輸出2 執行 新增9個任務至執行緒池 submit 提交任務使用submit 方法,如下 關鍵方法execute public future submit runnable task...

mysql 執行緒池原始碼 執行緒池原始碼解析

1.前言 我個人覺得理論性的東西可能大家都懂,但是具體的實現細節可能並不是很清楚所以才想記錄一下,加深記憶。2.關鍵原始碼解析 1 ctl private final atomicinteger ctl new atomicinteger ctlof running,0 private static...

執行緒池執行緒復用原理(原始碼詳解)

假設有50個任務,執行緒池設定核心執行緒數為3,等待佇列數設定為5,那麼執行這50個任務時,這3個核心執行緒和2個非核心執行緒就會不停的復用,進行任務的執行。2.1執行緒池的工作流程 當任務提交之後,執行緒池首先會檢查當前執行緒數,如果當前的執行緒數小於核心執行緒數 corepoolsize 則新建...