The first edition of this book [1] was one of the first to explore the concurrent programming features of Java. It covered the basics of writing Java programs using multiple threads of control, and the common issues faced by programmers coming from a sequential programming background (such as synchronization and scheduling). This third edition is a valuable resource, even to those who already mastered the concepts presented in the previous editions.
Oaks and Wong have extended their well-received text to cover the new features included in the Java 2 Platform, Standard Edition (J2SE) 5.0, such as explicit locks, atomic classes, thread pools, schedulers, and a number of advanced synchronization primitives. Many of those resources were already covered in the previous editions, where detailed implementation guidelines, alternatives, and usage examples were presented in a didactic manner. Since the resources are now available as part of the Java application programming interfaces (APIs), the authors have changed their approach slightly, focusing more on usage than on implementation details. This should provide a fast track to the development of complex threaded applications, since it allows programmers to deal with concurrency from a higher level of abstraction. For those still interested in implementation details, but not willing to face the source code of the feature-rich implementations included in the Java API, the bo!ok keeps the implementation examples from its previous editions as an appendix, supported by comments about the Java APIs that supersede them.
The book requires a certain level of proficiency in the Java programming language and development environment. It doesn’t offer an extensive review of the basics in concurrent programming, but even those lacking such fundamentals can follow its clear and straightforward explanations. Furthermore, it provides brief definitions of many terms used in Java thread programming, helping readers with a background in other threading systems relate to those terms.