ABSTRACT: Effective Concurrent Java
The Java programming language has turned a generation of applications programmers into concurrent programmers through its direct support of multithreading. However, the Java concurrency primitives are just that: primitive. From them you can build many concurrency utilities, but doing so takes great care as concurrent programming poses many traps for the unwary.
Based on the principles in the best-selling Java Concurrency in Practice, this talk focuses on design techniques that help you create correct and maintainable concurrent code. Presented in the style of Effective Java, this talk offers 10 items for effectively writing concurrent code, divided into three categories: writing thread-safe code, structuring concurrent applications, and improving scalability.
Writing thread-safe code:
– Encapsulate your data
– Encapsulate any needed synchronization
– Document thread-safety intent and implementation
– Prefer immutable objects
– Exploit effective immutability
Rules for structuring concurrent applications
– Think tasks, not threads
– Build resource-management into your architecture
– Decouple identification of work from execution
Rules for improving scalability
– Find and eliminate serialization
SPEAKER BIO: Brian Goetz
Brian Goetz has been a professional software developer for 20 years. He is the author of over 75 articles on software development, and his book, Java Concurrency In Practice, was published in May 2006 by Addison-Wesley. He serves on the JCP Expert Groups for JSRs 166 (concurrency utilities), 107 (caching), and 305 (annotations for safety analysis). He is a frequent presenter at JavaOne, OOPSLA, JavaPolis, SDWest, and the No Fluff Just Stuff Software Symposium Tour. Brian is a Sr. Staff Engineer at Sun Microsystems.
Effective Concurrent Java PDF