Fork-join functionality is achieved by ForkjoinTask object, it has two method fork() and join () Method.
The fork() method allows a new ForkJoinTask to be launched from an existing one.
The join() method allows a ForkJoinTask to wait for the completion of another one.
Again ForkjoinTask object has been of two types: RecursiveAction and RecursiveTask which is more specialized form of this instance. While RecursiveAction represent executions that do not yield a return value, Instances of RecursiveTask yield return values.