Java的線程既是工做單元,也是執行機制。從JDK5開始,把工做單元與執行機制分離開來。工做單元包括Runnable和Callable,而執行機制由Executor框架提供。java
在HotSpot VM 的線程模型中,Java線程(java.lang.Thread)被一對一映射爲本地操做系統線程。在上層,Java多線程程序一般吧應用分解爲若干個任務,時候使用用戶級的調度器(Executor框架)將這些任務映射爲固定數量的線程;在底層,操做系統內核將這些線程映射到硬件處理器上。小程序
Executor框架主要由三大部分組成以下: 1.任務。包括被執行任務須要實現的接口:Runnable接口或Callable接口。 2.任務的執行。包括Executor接口和ExecutorService接口。兩個實現類:ThreadPoolExecutor和ScheduledThreadPoolExecutor。 3.異步計算的結果:包括接口Future 和 實現Future 接口的 FutureTask。服務器
Executor框架的主要成員:ThreadPoolExecutor、ScheduledThreadPoolExecutor、 Future 接口、 Runable 接口、Callable接口和Executors。多線程
1) ThreadPoolExecutor框架
ThreadPoolExecute一般使用工廠類Executor來建立。Executor能夠建立3種類型的ThreadPoolExecutor:SingleThreadExecute、FixedThreadPool 和CacheThreadPool。異步
2)ScheduledThreadPoolExecutor操作系統
ScheduledThreadPoolExecutor一般使用工廠類Executors來建立,包含如下兩種:ScheduledThreadPoolExecutor:包含若干個線程的ScheduledThreadPoolExecutor。SingleThreadPoolExecutor:只包含一個線程的ScheduledThreadPoolExecutor。線程