Comment créer des tâches parallèles à l'aide du framework Fork/Join en Java ? Définissez la logique des tâches, calculez les résultats ou effectuez des actions. Créez un ForkJoinPool pour gérer les threads parallèles. Utilisez la méthode fork() pour soumettre des tâches. Utilisez la méthode join() pour obtenir les résultats de la tâche.
Java Fork/Join Framework : Un outil puissant en simultanéité et multithreading
Fork/Join Framework est un outil puissant dans la bibliothèque de concurrence Java qui utilise la stratégie diviser pour régner pour paralléliser les tâches. Il est basé sur un algorithme de « vol de tâches », dans lequel les threads collaborent sur des tâches et volent des tâches dans une file d'attente partagée.
Comment utiliser le framework Fork/Join
fork()
pour soumettre des tâches au pool de threads. fork()
方法提交任务到线程池。join()
方法获取任务的执行结果。实战案例:斐波那契数列
使用 Fork/Join 框架计算斐波那契数列:
import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.RecursiveTask; class FibonacciTask extends RecursiveTask<Long> { private final int n; public FibonacciTask(int n) { this.n = n; } @Override public Long compute() { if (n <= 1) { return (long) n; } else { FibonacciTask leftTask = new FibonacciTask(n - 1); FibonacciTask rightTask = new FibonacciTask(n - 2); leftTask.fork(); rightTask.fork(); return leftTask.join() + rightTask.join(); } } } public class FibonacciForkJoin { public static void main(String[] args) { ForkJoinPool pool = new ForkJoinPool(); int n = 40; FibonacciTask task = new FibonacciTask(n); Long result = pool.invoke(task); System.out.println("斐波那契数列第 " + n + " 项为:" + result); } }
这个示例创建了一个 FibonacciTask
类,它重写了 compute()
方法来计算斐波那契数列。它使用 fork()
方法将子任务提交到线程池,并使用 join()
方法获取结果。FibonacciForkJoin
类创建一个 ForkJoinPool
并提交 FibonacciTask
join()
pour obtenir le résultat de l'exécution de la tâche. 🎜🎜🎜Cas pratique : Séquence de Fibonacci🎜🎜🎜Utilisez le framework Fork/Join pour calculer la séquence de Fibonacci :🎜rrreee🎜Cet exemple crée une classe FibonacciTask
, qui a réécrit le compute() pour calculer la séquence de Fibonacci. Il utilise la méthode fork()
pour soumettre des sous-tâches au pool de threads et la méthode join()
pour obtenir les résultats. La classe FibonacciForkJoin
crée un ForkJoinPool
et soumet une FibonacciTask
, puis récupère et imprime les résultats. 🎜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!