Executor框架簡介

Java的線程既是工做單元,也是執行機制。從JDK5開始,把工做單元與執行機制分離開來。工做單元包括Runnable和Callable,而執行機制由Executor框架提供。java

Executor框架簡介

1. Executor 框架的兩級調度模型

在HotSpot VM 的線程模型中,Java線程(java.lang.Thread)被一對一映射爲本地操做系統線程。在上層,Java多線程程序一般吧應用分解爲若干個任務,時候使用用戶級的調度器(Executor框架)將這些任務映射爲固定數量的線程;在底層,操做系統內核將這些線程映射到硬件處理器上。小程序

輸入圖片說明

Executor框架的結構

Executor框架主要由三大部分組成以下: 1.任務。包括被執行任務須要實現的接口:Runnable接口或Callable接口。 2.任務的執行。包括Executor接口和ExecutorService接口。兩個實現類:ThreadPoolExecutor和ScheduledThreadPoolExecutor。 3.異步計算的結果:包括接口Future 和 實現Future 接口的 FutureTask。服務器

Executor框架的成員

Executor框架的主要成員:ThreadPoolExecutor、ScheduledThreadPoolExecutor、 Future 接口、 Runable 接口、Callable接口和Executors。多線程

1) ThreadPoolExecutor框架

ThreadPoolExecute一般使用工廠類Executor來建立。Executor能夠建立3種類型的ThreadPoolExecutor:SingleThreadExecute、FixedThreadPool 和CacheThreadPool。異步

  • FixedThreadPool :建立使用固定線程數的FixedThreadPool的API,適用於爲了知足資源管理的需求,而須要限制當前線程數量的應用場景,適用於負載比較重的服務器。
  • SingleThreadExecutor:建立使用單個線程的SingleThreadExecutor的API,適用於須要保證順序地執行各個任務,而且在任意時間點,不會有多個線程活動的應用場景。
  • CacheThreadPool :建立一個會根據須要建立新線程的CachedThreadPool的API。CachedThreadPool是大小無界的線程池,適用於執行不少的短裙異步任務的小程序,或者負載較輕的服務器。

2)ScheduledThreadPoolExecutor操作系統

ScheduledThreadPoolExecutor一般使用工廠類Executors來建立,包含如下兩種:ScheduledThreadPoolExecutor:包含若干個線程的ScheduledThreadPoolExecutor。SingleThreadPoolExecutor:只包含一個線程的ScheduledThreadPoolExecutor。線程

相關文章
相關標籤/搜索