執行緒池核心組件圖解
看原始碼之前,先了解一下該組件 最主要的幾個 介面、抽象類和實作類的結構關系,
該組件中,Executor 和 ExecutorService 介面 定義了執行緒池最核心的幾個方法,提交任務 submit ()、關閉執行緒池 shutdown(),抽象類 AbstractExecutorService 主要對公共行為 submit()系列方法進行了實作,這些 submit()方法 的實作使用了 模板方法模式,其中呼叫的 execute()方法 是未實作的 來自 Executor 介面 的方法,實作類 ThreadPoolExecutor 則對執行緒池進行了具體而復雜的實作,
另外還有一個常見的工具類 Executors,里面為開發者封裝了一些可以直接拿來用的執行緒池,
原始碼賞析
話不多說,直接上原始碼,(這里只看最主要的代碼部分)
Executor 和 ExecutorService 介面
AbstractExecutorService 抽象類
ThreadPoolExecutor
ThreadPoolExecutor 中的 execute()方法 執行 Runnable 任務 的流程邏輯可以用下圖表示,
工具類 Executors
看類名也知道,它最主要的作用就是提供 static 的工具方法,為開發者提供各種封裝好的 具有各自特性的執行緒池,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69396.html
標籤:Java
上一篇:List 集合去重的 3 種方
