Maison >Java >javaDidacticiel >Le rôle des génériques de fonctions Java dans la programmation simultanée
Le rôle des fonctions génériques Java dans la programmation simultanée : vous pouvez créer des utilitaires de concurrence polyvalents qui peuvent être utilisés avec différents types de données, sécurisant ainsi votre type de code. Créez des tâches parallèles à l'aide des interfaces fonctionnelles Callable et Runnable, où les paramètres génériques représentent les types de données traités par la tâche. Soumettez des tâches à ExecutorService pour une exécution parallèle. Les paramètres génériques garantissent la sécurité des threads. Différentes tâches ne peuvent accéder qu'à leurs propres types de données spécifiques. En utilisant des génériques pour créer une tâche commune, vous pouvez calculer en parallèle les carrés de différents types d’éléments dans une liste, améliorant ainsi la réutilisabilité du code.
Rôle des génériques de fonctions Java dans la programmation simultanée
Introduction
Les génériques de fonctions Java vous permettent d'utiliser des paramètres de type pour créer du code de type sécurisé. En programmation simultanée, les fonctions génériques peuvent être utilisées pour créer des utilitaires de concurrence polyvalents pouvant être utilisés avec différents types de données.
Programmation simultanée utilisant des génériques fonctionnels
Vous pouvez utiliser les interfaces fonctionnelles Callable
et Runnable
pour créer des tâches parallèles. Ces interfaces ont un paramètre générique qui représente le type de données géré par la tâche. Par exemple : Callable
和 Runnable
函数式接口来创建并行任务。这些接口具有一个泛型参数,代表任务处理的数据类型。例如:
Callable<Integer> task = () -> { // 处理数据并返回结果 return 42; };
您可以将这些任务提交给 ExecutorService
ExecutorService executor = Executors.newFixedThreadPool(4); List<Future<Integer>> results = executor.invokeAll(tasks);Vous pouvez soumettre ces tâches à
ExecutorService
pour une exécution parallèle. Les paramètres génériques garantissent la sécurité des threads car différentes tâches ne peuvent accéder qu'à leurs propres types de données spécifiques : <T> Callable<T> squareTask(T element) { return () -> { return element * element; }; }Exemple pratique Supposons que vous traitiez une liste contenant différents types de données et que vous souhaitiez calculer chacune en parallèle. Le carré de l'élément . Vous pouvez utiliser des fonctions génériques pour créer une tâche générique qui reçoit un élément de n'importe quel type, calcule son carré et renvoie le résultat :
List<Integer> numbers = List.of(1, 2, 3, 4, 5); ExecutorService executor = Executors.newFixedThreadPool(4); List<Callable<Integer>> tasks = new ArrayList<>(); for (int number : numbers) { tasks.add(squareTask(number)); } List<Future<Integer>> results = executor.invokeAll(tasks);Vous pouvez maintenant utiliser cette tâche pour calculer le carré de tous les éléments d'une liste en parallèle :
rrreee Conclusion
Les fonctions génériques Java fournissent des outils puissants pour la programmation simultanée. En utilisant des paramètres de type, vous pouvez créer des utilitaires de concurrence polyvalents qui peuvent être utilisés avec différents types de données, garantissant ainsi la sécurité des threads et la réutilisabilité du code. 🎜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!