O'Reilly logo

Efficient Android Threading by Anders Goransson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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, allow such things as:

  • 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:

public interface Executor {
    void execute(Runnable command);
}

Despite its simplicity, the Executor is the foundation of a powerful execution environment, and is more often used than the basic Thread interface because it provides a better separation between submitting a task ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required