Le pool de threads évolutif en Java peut ajuster dynamiquement le nombre de threads en fonction de la demande et est créé à l'aide de la méthode newCachedThreadPool dans la classe Executors. Les propriétés configurables incluent le nombre de threads principaux, le nombre maximum de threads, le temps de rétention des threads inactifs et la fabrique de threads, qui peuvent être définis via les méthodes correspondantes. Dans le cas réel, le pool de threads évolutif est utilisé pour soumettre la liste des tâches et attendre que la tâche soit terminée.
Dans la programmation simultanée Java, le pool de threads est un outil courant pour gérer les threads. Un pool de threads bien conçu peut améliorer les performances, l'évolutivité et la disponibilité. Cet article présentera comment utiliser la classe Executors
en Java pour créer et configurer un pool de threads évolutif, et fournira un cas pratique. Executors
类创建和配置一个可扩展的线程池,并提供一个实战案例。
可扩展线程池的關鍵是要根据需求动态调整线程池中的线程数量。Java中的Executors
类提供了创建可扩展线程池的方法:
ExecutorService executor = Executors.newCachedThreadPool();
newCachedThreadPool
方法返回一个可扩展的线程池,它根据需要创建和销毁线程。如果队列中没有正在运行的任务,线程将被销毁,而当新的任务提交时,新的线程将被创建。
可扩展线程池可以通过设置以下属性進行配置:
可以使用ThreadPoolExecutor
类setCorePoolSize(int corePoolSize)
、setMaximunPoolSize(int maximumPoolSize)
、setKeepAliveTime(long keepAliveTime, TimeUnit unit)
和setThreadFactory(ThreadFactory threadFactory)
Executors
en Java fournit des méthodes pour créer des pools de threads extensibles : import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class Example { public static void main(String[] args) { ExecutorService executor = Executors.newCachedThreadPool(); List<Callable<Integer>> tasks = List.of( () -> { return 1; }, () -> { return 2; }, () -> { return 3; } ); List<Future<Integer>> results = executor.invokeAll(tasks); for (Future<Integer> result : results) { System.out.println(result.get()); } executor.shutdown(); } }La méthode
newCachedThreadPool
renvoie un pool de threads extensible qui crée et détruit les threads selon les besoins. S'il n'y a aucune tâche en cours d'exécution dans la file d'attente, le thread sera détruit et lorsqu'une nouvelle tâche est soumise, un nouveau thread sera créé. Configuration du pool de threads 🎜🎜Le pool de threads évolutif peut être configuré en définissant les propriétés suivantes : 🎜ThreadPoolExecutor
setCorePoolSize(int corePoolSize)
, setMaximunPoolSize(int maximumPoolSize)
, setKeepAliveTime (long keepAliveTime, unité TimeUnit)
et setThreadFactory(ThreadFactory threadFactory)
définissent ces propriétés. 🎜🎜Cas pratique🎜🎜Ce qui suit est un cas pratique d'utilisation d'un pool de threads évolutif : 🎜rrreee🎜Dans cet exemple, nous créons un pool de threads évolutif où le nombre de threads est ajusté en fonction du nombre de tâches soumises. Il soumet une liste de tâches et attend que toutes les tâches soient terminées. Enfin, il ferme le pool de threads. 🎜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!