This section covers the basics of multithreaded programming as used generally in the Java programming language. The next section covers the aspects that are specific to Android. If you are already comfortable with ExecutorService, Runnable, and synchronization in "normal" Java, skip this section and move on to the next one. See http://www.coreservlets.com/android-tutorial/ for the full tutorial, associated code, exercises, and exercise solutions. You can also download PDF files of each lecture, for saving or printing.