Un pool de threads est une collection pré-créée de threads utilisés pour effectuer des tâches simultanées, qui optimise l'utilisation des threads, améliore les performances et évite l'épuisement des ressources. Les méthodes d'utilisation spécifiques incluent : l'utilisation de la classe Executors pour créer un pool de threads. Soumettez des tâches à l'aide de la méthode submit(). Utilisez shutdown() pour arrêter le pool de threads et attendez que la tâche soit terminée. Utilisez shutdownNow() pour terminer immédiatement le pool de threads et interrompre les tâches en cours.
Guide de création et de gestion d'un pool de threads Java
Introduction
Un pool de threads est un ensemble de threads pré-créés qui peuvent être utilisés pour effectuer des tâches simultanées. Il fournit un mécanisme pour gérer et optimiser l'utilisation des threads, améliorant ainsi les performances et évitant l'épuisement des ressources.
Créer un pool de threads
Utilisez la classe Executors
pour créer un pool de threads : Executors
类创建线程池:
ExecutorService threadPool = Executors.newFixedThreadPool(numThreads);
其中 numThreads
是要创建的线程数。
管理线程池
一旦创建了线程池,您可以使用以下方法进行管理:
提交任务:使用 submit()
方法提交任务:
Future<Result> future = threadPool.submit(task);
关闭线程池:使用 shutdown()
方法关闭线程池,它会等待所有正在运行的任务完成:
threadPool.shutdown();
终止线程池:使用 shutdownNow()
方法立即终止线程池,它会尝试中断所有正在运行的任务:
threadPool.shutdownNow();
实战案例
以下代码演示了如何使用线程池处理图像处理任务:
ExecutorService threadPool = Executors.newFixedThreadPool(4); List<Image> images = ...; // 获取需处理的图像列表 for (Image image : images) { Future<Image> future = threadPool.submit(() -> processImage(image)); } // 等待所有图像处理完成 for (Future<Image> future : futures) { Image processedImage = future.get(); }
在该示例中,线程池最多同时处理 4 张图像。当提交任务时,submit()
方法会返回一个 Future
,该 Future
可用于获取任务完成后的结果。
注意事项
Future
对象,以防止资源泄漏。submit()
rrreeenumThreads
est le nombre de threads à créer. submit() : 🎜rrreee🎜<li>🎜🎜Fermez le pool de threads : 🎜Utilisez la méthode <code>shutdown()
pour arrêter le pool de threads, qui attendra que toutes les tâches en cours soient terminées : 🎜 rrreee🎜shutdownNow()
pour terminer immédiatement le pool de threads, qui tentera d'interrompre toutes les tâches en cours : 🎜rrreee🎜🎜🎜🎜Cas pratique 🎜🎜🎜Le code suivant montre comment utiliser la tâche de traitement d'image de traitement du pool de threads : 🎜rrreee🎜Dans cet exemple, le pool de threads traite jusqu'à 4 images simultanément. Lors de la soumission d'une tâche, la méthode submit()
renvoie un Future
qui peut être utilisé pour obtenir les résultats une fois la tâche terminée. 🎜🎜🎜Notes🎜🎜Futur
pour éviter les fuites de ressources. 🎜submit()
lancera des exceptions, assurez-vous d'intercepter ces exceptions et de les gérer de manière appropriée. 🎜🎜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!