Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Book Review - Concurrent Programming in Java

Books  
HOME 
SEMINARS 
TALKS 
ARTICLES 

BOOKS

  OVERVIEW
  REVIEWS

  BIBLIOGRAPHY    
    J2SE
    J2EE
    CORE C++
    STL
    TEMPLATES
    IOSTREAMS
    CONCURRENCY
    I18N
    PATTERNS
    OOA/OOD
    TESTING
    MANAGEMENT
 

LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
Book Review - Concurrent Programming in Java
   
  Book Review of the week
 
 
  Concurrent Programming in Java: Design Principles and Patterns 
  By Doug Lea 
  Reading,MA:Addison-Wesley Longman 
  ISBN 0-201-69581-2 
  339 pages 
 
  Price: $39.76 
Reviewed: Nov 1997
 
Before Java There Was Object Orientation and Concurrency 
Not just for Java programmers
T he enormous Java hype still continues, which is reflected in an increasing number of books covering the Java language and its growing environment. If you consider how young Java is compared to other programming languages, it is not surprising that a book covering in-depth and profound design and implementation techniques using Java is hard to find. Concurrent Programming in Java: Design Principles and Patterns by Doug Lea is an amazing and rare exception. The book reflects the author's experience in object orientation and concurrent programming, gathered long before Java became a commonly known programming language. Doug Lea's ideas were available on his Web page in the form of patterns, and he discussed them with whomever was interested before he put them into his book. 

Although the material was initially presented in a pattern style, this book is written conventionally and consists of nine chapters. The first introduces concurrency and the way it is (directly) supported by the Java language. Chapters two and three discuss the two main forces behind concurrency: safety and liveness. The following chapters present design and implementation principles for concurrent object-oriented programming. The detailed discussions of these principles make the book invaluable for anyone interested in concurrent object-oriented systems development. Take, for example, the chapter that discusses guarded suspension and condition variables. It covers: 

  • the forces that influence the waiting and the notifying side 
  • the pros and cons of different ways to represent the logical state that leads to a wait or a notification 
  • related abstractions such as semaphores and latches 
  • alternative solutions such as busy wait or the use of suspend and resume. 
A more comprehensive and sound discussion of the topic is hard to conceptualize. 

Our sole point of critique concerns the title: Concurrent Programming in Java suggests that the book is tightly bound to Java programming. However, the information contained in this book is equally valuable to those implementing a concurrent system in C++ or any other (strongly typed) object-oriented language. The code examples are in Java and some small passages may apply only to Java, but most of the book would benefit anyone involved in concurrent systems design and development. In sum: The book is a must-read for everyone who is seriously designing or implementing a concurrent system in an object-oriented way. 

Angelika Langer , a trainer and consultant, develops and teaches classes on advanced C++, STL, multithreading, internationalization, and Java. She has served on the ANSI/ISO C++ Committee since 1993. Klaus Kreft is a software architect and consultant with more than a decade of experience in industrial software development. He works for Siemens Business Services in Germany. Langer and Kreft are working on a book covering standard C++ iostreams and locales and are columnists for C++ Report.

 

 
© Copyright 1995-2003 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Articles/Reviews/DougLea/review.htm  last update: 29 Oct 2003