Doug Lea, Concurrent Programming in Java Design Principles and Patterns