Creating a fork/join pool
In this recipe, you will learn how to use the basic elements of the fork/join framework. This includes the following:
- Creating a
ForkJoinPool
object to execute the tasks - Creating a subclass of
ForkJoinTask
to be executed in the pool
The main characteristics of the fork/join framework you're going to use in this example are as follows:
- You will create
ForkJoinPool
using the default constructor. - Inside the task, you will use the structure recommended by the Java API documentation:
if (problem size > default size){ tasks=divide(task); execute(tasks); } else { resolve problem using another algorithm; }
- You will execute the tasks in a synchronized way. When a task executes two or more subtasks, it waits for their finalizations. In this way, the thread that was executing that task (called worker thread) will look for other tasks to execute, taking full advantage of their execution time.
- The tasks you're going to implement...