Description
Book SynopsisThreads are essential to Java programming, but learning to use them effectively is a nontrivial task. This new edition shows you how to take advantage of Java's threading facilities and brings you up-to-date with the changes in Java 2 Standard Edition version 5.0 (J2SE 5.0). It provides a thorough, step-by-step approach to threads programming.
Trade ReviewIf you are a Java programmer and you are thinking of using threads to make your work more responsive or even faster given todays symmetric multiprocessing hardware, then this is an excellent book. It probably isnt academic enough for use in formal education but as a practical guide to how not to do things, and hopefully how to do things better, it is excellent. - Harry Fairhead, VSJ, May 2005
Table of ContentsPreface 1. Introduction to Threads Java Terms About the Examples Why Threads? 2. Thread Creation and Management What Is a Thread? Creating a Thread The Lifecycle of a Thread Two Approaches to Stopping a Thread The Runnable Interface Threads and Objects 3. Data Synchronization The Synchronized Keyword The Volatile Keyword More on Race Conditions Explicit Locking Lock Scope Choosing a Locking Mechanism Nested Locks Deadlock Lock Fairness 4. Thread Notification Wait and Notify Condition Variables 5. Minimal Synchronization Techniques Can You Avoid Synchronization? Atomic Variables Thread Local Variables 6. Advanced Synchronization Topics Synchronization Terms Synchronization Classes Added in J2SE 5.0 Preventing Deadlock Deadlock Detection Lock Starvation 7. Threads and Swing Swing Threading Restrictions Processing on the Event-Dispatching Thread Using invokeLater( ) and invokeAndWait( ) Long-Running Event Callbacks 8. Threads and Collection Classes Overview of Collection Classes Synchronization and Collection Classes The Producer/Consumer Pattern Using the Collection Classes 9. Thread Scheduling An Overview of Thread Scheduling Scheduling with Thread Priorities Popular Threading Implementations 10. Thread Pools Why Thread Pools? Executors Using a Thread Pool Queues and Sizes Thread Creation Callable Tasks and Future Results Single-Threaded Access 11. Task Scheduling Overview of Task Scheduling The java.util.Timer Class The javax.swing.Timer Class The ScheduledThreadPoolExecutor Class 12. Threads and I/O A Traditional I/O Server A New I/O Server Interrupted I/O 13. Miscellaneous Thread Topics Thread Groups Threads and Java Security Daemon Threads Threads and Class Loading Threads and Exception Handling Threads, Stacks, and Memory Usage 14. Thread Performance Overview of Performance Synchronized Collections Atomic Variables and Contended Synchronization Thread Creation and Thread Pools 15. Parallelizing Loops for Multiprocessor Machines Parallelizing a Single-Threaded Program Multiprocessor Scaling Appendix: Superseded Threading Utilities Index