page.title=Sending Operations to Multiple Threads page.tags=threadpool,runnable trainingnavtop=true startpage=true @jd:body

Dependencies and prerequisites

You should also read

Try it out

Download the sample

ThreadSample.zip

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 class 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.

Lessons

Specifying the Code to Run on a Thread
Learn how to write code to run on a separate {@link java.lang.Thread}, by defining a class that implements the {@link java.lang.Runnable} interface.
Creating a Manager for Multiple Threads
Learn how to create an object that manages a pool of {@link java.lang.Thread} objects and a queue of {@link java.lang.Runnable} objects. This object is called a {@link java.util.concurrent.ThreadPoolExecutor}.
Running Code on a Thread Pool Thread
Learn how to run a {@link java.lang.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.