1、說明
Java中的線程池核心實作類別是ThreadPoolExecutor
Executor:只提供執行任務的接口,使用者不必關注如何製作線程,如何製作線程,只需提供Runnable物件。
ExecutorService:在執行任務的基礎上,追加了提交任務、執行緒池生命週期的管理等介面。
AbstractExecutorService:抽象系列執行任務的過程,確保下層的實作只需專注於執行任務的方法即可。
ThreadPoolexecutor:一方面維持自己的生命週期,另一方面管理課程和任務,兩者很好地結合實行並行任務。
2、實例
// ctl:高三位表示线程池运行状态,低29位表示线程池线程运行数量 // 一个变量存储两个值的好处是不必费心思(比如加锁)去维护两个状态的一致性 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); // 获取线程池当前的运行状态(~:按位取反,即0变成1,1变成0。) private static int runStateOf(int c) { return c & ~CAPACITY; } // 获取线程池当前运行的线程数量 private static int workerCountOf(int c) { return c & CAPACITY; } // 通过线程池状态和运行的线程数量获取ctl private static int ctlOf(int rs, int wc) { return rs | wc; }
以上是Java執行緒池中類別的繼承是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!