Online Java Compiler By
JavaTpoint.com
import java.util.ArrayList; import java.util.List; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.RecursiveAction; class Task12 extends RecursiveAction { private long Load = 0; public Task12(long Load) { this.Load = Load; } @Override protected void compute() { //if work is above threshold, break tasks up into smaller tasks List
subtasks = new ArrayList
(); subtasks.addAll(createSubtasks()); for(RecursiveAction subtask : subtasks){ subtask.fork(); } } private List
createSubtasks() { List
subtasks =new ArrayList
(); Task12 subtask1 = new Task12(this.Load / 2); subtasks.add(subtask1); return subtasks; } } public class JavaForkJoingetcommonpoolparallelismExample2 { public static void main(final String[] arguments) throws InterruptedException { ForkJoinPool Pool = ForkJoinPool.commonPool(); int i= Pool.getPoolSize(); System.out.println("Common Pool Size before :" +i); Task12 t = new Task12(1000); Pool.invoke(t); Pool.execute(t); System.out.println("Common Pool Size after :" +Pool.getPoolSize()); System.out.println(" Parallelism level of pool :" +Pool.getCommonPoolParallelism()); System.out.println("Is pool use First-in-First-out Scheduling:" +Pool.getAsyncMode()); } }
Output