Google is committed to advancing racial equity for Black communities. See how.

Sending operations to multiple threads

The speed and efficiency of a long-running, data-intensive operation often improves when you split it into smaller operations running on multiple threads. On a device that has a CPU with multiple processors (cores), the system can run the threads in parallel, rather than making each sub-operation wait for a chance to run. For example, decoding multiple image files in order to display them on a thumbnail screen runs substantially faster when you do each decode on a separate thread.

This guide shows you how to set up and use multiple threads in an Android app, using a thread pool object. You'll also learn how to define code to run on a thread and how to communicate between one of these threads and the UI thread.


Specifying the code to run on a thread

Learn how to write code to run on a separate Thread by defining a class that implements the Runnable interface.

Creating a manager for multiple threads

Learn how to create an object that manages a pool of Thread objects and a queue of Runnable objects. This object is called a ThreadPoolExecutor.

Running code on a thread pool thread

Learn how to run a Runnable on a thread from the thread pool.

Communicating with the UI thread

Learn how to communicate from a thread in the thread pool to the UI thread.

More information

To learn more about multi-threaded operations on Android, see the following guides:

Sample app

To try out the concepts in this guide, download ThreadSample.