1. Single Thread Executor:只有一個線程的線程池,因此所有提交的任務是順序執行。
代碼:Executors.newSingleThreadExecutor()
2. Cached Thread Pool:線程池里有很多線程需要同時執行,老的可用線程將被新的任務觸發重新執行,如果線程超過60秒內沒執行,那么將被終止並從池中刪除。
代碼:Executors.newCachedThreadPool()
3. Fixed Thread Pool:擁有固定線程數的線程池,如果沒有任務執行,那么線程會一直等待。
代碼:Executors.newFixedThreadPool(4)
在構造函數中的參數4是線程池的大小,你可以隨意設置,也可以和cpu的核數量保持一致,獲取cpu的核數量方式:int cpuNums = Runtime.getRuntime().availableProcessors();
4. Scheduled Thread Pool:用來調度即將執行的任務的線程池。
代碼:Executors.newScheduledThreadPool()
5. Single Thread Scheduled Pool:只有一個線程,用來調度任務在指定時間執行。
代碼:Executors.newSingleThreadScheduledExecutor()