Home | History | Annotate | Download | only in multiple-threads
      1 page.title=Sending Operations to Multiple Threads
      2 page.tags=threadpool,runnable
      3 
      4 trainingnavtop=true
      5 startpage=true
      6 
      7 
      8 @jd:body
      9 
     10 <div id="tb-wrapper">
     11 <div id="tb">
     12 
     13 <!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
     14 <h2>Dependencies and prerequisites</h2>
     15 <ul>
     16     <li>Android 3.0 (API Level 11) or higher</li>
     17     <li>
     18         <a href="{@docRoot}training/load-data-background/index.html">
     19         Loading Data in the Background</a> training class
     20     </li>
     21     <li>
     22         <a href="{@docRoot}training/run-background-service/index.html">
     23         Running in a Background Service</a> training class
     24     </li>
     25 </ul>
     26 
     27 <!-- related docs (NOT javadocs) -->
     28 <h2>You should also read</h2>
     29 <ul>
     30   <li><a href="{@docRoot}guide/components/processes-and-threads.html">Processes and Threads</a></li>
     31 </ul>
     32 
     33 <h2>Try it out</h2>
     34 <div class="download-box">
     35     <a href="{@docRoot}shareables/training/ThreadSample.zip" class="button">Download the sample</a>
     36     <p class="filename">ThreadSample.zip</p>
     37 </div>
     38 
     39 </div>
     40 </div>
     41 <p>
     42     The speed and efficiency of a long-running, data-intensive operation often improves when you
     43     split it into smaller operations running on multiple threads. On a device that has a CPU with
     44     multiple processors (cores), the system can run the threads in parallel, rather than making each
     45     sub-operation wait for a chance to run. For example, decoding multiple image files in order to
     46     display them on a thumbnail screen runs substantially faster when you do each decode on a
     47     separate thread.
     48 </p>
     49 <p>
     50     This class shows you how to set up and use multiple threads in an Android app, using a
     51     thread pool object. You'll also learn how to define code to run on a thread and how to
     52     communicate between one of these threads and the UI thread.
     53 </p>
     54 <h2>Lessons</h2>
     55 <dl>
     56     <dt>
     57         <b><a href="define-runnable.html">Specifying the Code to Run on a Thread</a></b>
     58     </dt>
     59     <dd>
     60         Learn how to write code to run on a separate {@link java.lang.Thread}, by
     61         defining a class that implements the {@link java.lang.Runnable} interface.
     62     </dd>
     63     <dt>
     64         <b><a href="create-threadpool.html">Creating a Manager for Multiple Threads</a></b>
     65     </dt>
     66     <dd>
     67         Learn how to create an object that manages a pool of {@link java.lang.Thread} objects and
     68         a queue of {@link java.lang.Runnable} objects. This object is called a
     69         {@link java.util.concurrent.ThreadPoolExecutor}.
     70     </dd>
     71     <dt>
     72         <b><a href="run-code.html">Running Code on a Thread Pool Thread</a></b>
     73     </dt>
     74     <dd>
     75         Learn how to run a {@link java.lang.Runnable} on a thread from the thread pool.
     76     </dd>
     77     <dt>
     78         <b><a href="communicate-ui.html">Communicating with the UI Thread</a></b>
     79     </dt>
     80     <dd>
     81         Learn how to communicate from a thread in the thread pool to the UI thread.
     82     </dd>
     83 </dl>
     84 
     85