Chapter 9. Control over Thread Execution Through the Executor Framework
Java’s Executor framework opens up new dimensions of control over threads and the resources they use on the system. Sometimes you want to launch as many threads as the system can handle to resolve tasks quickly; other times you want to let the system manage the number of threads; and sometimes you want to cancel threads because they are no longer needed. The Executor framework, along with related classes, allows you to:
- Set up pools of worker threads and queues to control the number of tasks that can wait to be executed on these threads
- Check the errors that caused threads to terminate abnormally
- Wait for threads to finish and retrieve results from them
- Execute batches of threads and retrieve their results in a fixed order
- Launch background threads at convenient times so that results are available to the user faster
Executor
The fundamental component of the Executor framework is the simple Executor interface. Its main goal is to separate the creation of a task (such as a Runnable) from its execution, thus enabling the sorts of application behaviors listed at the beginning of the chapter. The interface includes just one method:
publicinterfaceExecutor{voidexecute(Runnablecommand);}
Despite its simplicity, the Executor is the foundation of a powerful execution environment, and is used more often than the basic Thread interface because it provides a better separation between submitting a task and its actual ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access