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 Taskk1 extends RecursiveAction { private long Load = 0; public Taskk1(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
(); Taskk1 subtask1 = new Taskk1(this.Load / 2); Taskk1 subtask2 = new Taskk1(this.Load / 2); Taskk1 subtask3 = new Taskk1(this.Load / 2); subtasks.add(subtask1); subtasks.add(subtask2); subtasks.add(subtask3); return subtasks; } } public class JavaForkJoinsubmitExample1 { public static void main(final String[] arguments) throws InterruptedException { int proc = Runtime.getRuntime().availableProcessors(); System.out.println("numbers of core available in your processor:" +proc); ForkJoinPool Pool = ForkJoinPool.commonPool(); System.out.println(" Before invoking number of active thread :" +Pool.getActiveThreadCount()); Taskk1 t = new Taskk1(400); System.out.println(" submit :" +Pool.submit(t)); } }
Output