1. Description
La classe d'implémentation principale du pool de threads en Java est ThreadPoolExecutor
Executor : elle fournit uniquement une interface pour exécuter les tâches. Les utilisateurs n'ont pas besoin de prêter attention à la façon de créer des threads. Objets exécutables.
ExecutorService : sur la base de l'exécution des tâches, des interfaces telles que la soumission des tâches et la gestion du cycle de vie du pool de threads sont ajoutées.
AbstractExecutorService : processus d'abstraction d'une série de tâches pour garantir que l'implémentation sous-jacente n'a besoin de se concentrer que sur la méthode d'exécution des tâches.
ThreadPoolexecutor : D'une part, il maintient son propre cycle de vie, et d'autre part, il gère les cours et les tâches. Les deux se combinent bien pour mettre en œuvre des tâches parallèles.
2. Exemple
// 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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!