ForkJoinPool
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ae140833c31b790b5a43f46648ea85ee.png)
ForkJoinTask
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c01acb0556f33cb32cd3ac7f5350d9d0.png)
RecursiveTask
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0e09e78cae1fbc6027e82f032f75e595.png)
demo-fibonacci
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.concurrent.RecursiveTask;
public class FibonacciDemo extends RecursiveTask<Integer> {
private int num;
public FibonacciDemo(int num) {
this.num = num;
}
@Override
protected Integer compute() {
if(num<=2){
return 1;
}
FibonacciDemo fibonacciDemo=new FibonacciDemo(num-1);
FibonacciDemo fibonacciDemo2=new FibonacciDemo(num-2);
fibonacciDemo.fork();
fibonacciDemo2.fork();
return fibonacciDemo.join()+fibonacciDemo2.join();
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
ForkJoinPool forkJoinPool=new ForkJoinPool();
FibonacciDemo fibonacciDemo=new FibonacciDemo(5);
ForkJoinTask<Integer> forkJoinTask=forkJoinPool.submit(fibonacciDemo);
System.out.println(forkJoinTask.get());
forkJoinPool.shutdown();
}
}