JDK5 defined high level synchronizers based on common patterns of concurrency (cyclic barrier, latches, producer-consumer, etc) that
obviated the need to implement concurrency using low level thread-based primitives. The book mentions none of these constructs.
Have these not changed/been enhanced in JDK7?
The book include the high level synchronizers that you mention. Chapter 3, Thread Synchronization Utilities, includes recipes about Semaphores, CountDownLatch, CyclicBarrier and Exchanger classes. The Java 7 API includes a new synchronization utility, the Phaser class. This class is useful when you have to execute concurrent tasks divided into phases and you need to synchronize them between each phase.