I found the book extremely instructive because of the combination of theory and practice.
This book combines the theoretical and practical side of concurrency. The book is aimed at students and software professionals who want to learn about concurrency. The concurrency concepts like processes, semaphores, monitors, mutual exclusion, deadlock, safety and liveness properties are explained by simple classic examples. The book stresses the importance of modelling concurrent programs. State Models are drawn using the Labelled Transition System (LTS). An algebraic notation Finite State Processes (FSP) is used to support the reasoning about concurrent processes. To apply the concepts in practice, all models are implemented using Java threads. The last 5 chapters of the book deal with issues like resource allocation, message passing and timed systems and contain more advanced examples.
The book comes with a CD-ROM. The CD-ROM contains the LTS analysis tool that allows experimenting with the state diagrams and FSP notations. Properties of a model can easily be checked. All examples are implemented as interactive applets and provided on the CD- ROM.
I found the book extremely instructive because of the combination of theory and practice. The book is very clearly written. The UML class diagrams, which support the Java implementations, are well thought through and display correct design. The exercises at the end of each chapter are useful to get to grips with the concurrency concepts and modelling.










