Java offers powerful multithreading capabilities -- even on operating systems that offer no inherent multithreading support. Multithreading gives Java developers a powerful tool for dramatically improving the responsiveness and performance of their programs. Now there's a complete guide to multithreaded programming with the Java 2 platform, written by multithreaded programming experts Bil Lewis and Daniel J. Berg. Start by understanding the rationale, fundamental concepts and foundations of multithreading, including the structures upon which threads are built, thread construction and lifecycles. Then, using extensive code examples, you'll master thread scheduling models; synchronization variables; and learn how to solve complex synchronization problems. The authors explain thread-specific data, and demonstrate how to leverage OS libraries to make Java multithreading more effective. They also cover multithreaded program design, interactions with RMI, tools for building threaded programs; and advanced techniques for maximizing thread performance.