The author of this book is not available in a Clojure fanboy and hence makes some pretty unfair comparisons between Java and Clojure, which is to show the alleged superiority of Clojure over Java. Also Clojure is the only language that comes in three out of seven chapters are used, which I find a little heavy. For a reprint of the book I would hope that at least the chapter on Communicating Sequential Processes (CSP) is demonstrated by Go. I missed the mention of MPI (Message Passing Interface). For a reprint of the book I would (perhaps based on Cilk or Java) like to see a chapter on Fork / Join, however, one would have probably change the title of the book. But otherwise you have to congratulate the author of this book. He has succeeded in just 270 pages not only the essential theoretical basis, but also on the basis of executable sample programs present the main concurrency models. I found particularly interesting chapter on GPU programming with OpenCL and the chapter on the Lambda architecture. Also, the book is likely to be one of the first in which the language Elixir (in the chapter on actuators) is used. Very fair, the author also shows in the evaluation of concurrency models. After each chapter, there is a small summary of the strengths and weaknesses of each model. This was followed by other books should take an example. Rounding out the whole by an overview of issues that had to omit the author. There you will find references even to such exotic subjects as grid computing or tuple space. All in all it is a very important book, precisely because it is not only the strengths but also the weaknesses of each concurrency models discussed and you can better estimate after reading, when to use a particular model and when better not.