1、newSingleThreadExecutor
創建一個單線程的線程池。這個線程池只有一個線程在工作,也就是單線程串行執行所有任務。如果這個唯一的線程因為異常結束,那么會有一個新的線程替代它。此線程池保證所有任務的執行順序按照任務的提交順序執行。
2、newFixedThreadPool
創建固定大小的線程池。每次提交一個任務就創建一個線程,直到線程達到線程池的最大大小。線程池的大小一旦達到最大值就會保持不變,如果某個線程因為執行異常而結束,那么線程池會補充一個新的線程。
3、newCachedThreadPool
創建一個可緩存的線程池。如果線程池的大小超過了處理任務所需要的線程,那么就會回收部分空閑的線程(60秒不執行的任務),當任務數增加時,此線程池又可以智能的添加新線程來處理任務。此線程池不會對大小做限制,線程池的大小完全依賴于jvm能夠創建的最大線程大小。
4、newScheduledThreadPool
創建一個大小無限的線程池。此線程池支持定時以及周期性執行任務的需求。