298

Is Java Concurrency in Practice still valid? I am wondering whether the ideas, concepts and implementation described in the book are still compliant with the latest Java versions.

I ask because the latest edition was done in 2006.

M-D
  • 9,777
  • 9
  • 27
  • 35
  • 9
    Yes it is. It will give you a good grounding in concurrent programming in Java. – Greg Kopff Apr 18 '12 at 04:40
  • 14
    For those interested, and since it isn't currently marked as the answer, [Brian Goetz](http://stackoverflow.com/users/3553087/brian-goetz) gave his opinion [here](http://stackoverflow.com/a/10214606/627727) – mkobit Sep 02 '15 at 14:49
  • at least this one is not valid: https://stackoverflow.com/questions/52253164/threadpoolexecutor-with-corepoolsize-0-should-not-execute-tasks-until-task-queue – Jason Feb 22 '19 at 12:00

9 Answers9

626

While my perspective may be biased, my current intention for updating the book would be almost strictly additive, covering fork-join, parallel decomposition, and the new parallel bulk data operations coming in Java SE 8.

EDIT 2020: ... and Project Loom.

Brian Goetz
  • 76,505
  • 17
  • 128
  • 138
  • 38
    Do you still (3 years later) have plans to update the book? AFAIK, the book available on Amazon is still the 2006 edition. It would be great to see coverage of many new features in Java SE 8 that relate to concurrency. – barclay Jun 22 '15 at 23:11
  • 172
    "Have plans" would be giving it too much credit. Perhaps "have ambition" is closer.... – Brian Goetz Jun 23 '15 at 00:48
  • 20
    a few more months, and it will be 2019... your fans are still waiting... :( – Kartik Aug 22 '18 at 01:44
  • 3
    +1 from yet another fan. Though I have read through some Java 8/9 Stream/Conc books, I am still waiting your updating ;-) – pambda Dec 07 '18 at 14:18
  • 26
    I understand. From my perspective, there's more leverage in making new versions of Java than new versions of the book, so I'm focusing on that for now. Maybe after Project Loom delivers, it'll be different. – Brian Goetz Dec 07 '18 at 15:19
182

Yes, it's still valid in my mind. There isn't big change in this area from 6 to 7. Fork-join is a new feature, which is very suitable for divide-and-conquer type of problems. But all the existing stuff inside the book, such as synchronization, volatile, servlet, are still very valid.

James Gan
  • 6,064
  • 2
  • 24
  • 32
49

I bought this book in 2013. I had very serious doubts that it would be current and useful given that this edition was published so long ago. The technology world moves quickly, and software technology even faster. Even so, this book is foundational. The concepts and practices that are discussed are more underpinnings for good software design and engineering than updates on the latest and greatest API's. This book has been indispensable, and I am glad that I got it before I had decided to write even a single line of concurrent code. It's probably saved me countless hours.

scottb
  • 9,181
  • 3
  • 38
  • 49
17

Yes definitely it's still valid, but I will recommend in addition or as an introduction The Well-Grounded Java Developer a well written book with a chapter on modern Java concurrency techniques and nicely done examples.

JKirchartz
  • 15,862
  • 7
  • 54
  • 82
Salah Eddine Taouririt
  • 20,669
  • 14
  • 52
  • 83
9

Yes. Very much. You can always keep track on new things being introduced in Java, however, the book does a fine job of explaining the fundamentals.

If it helps, this comes from a full time researcher in concurrency and parallelism using OOP.

codeFood
  • 1,211
  • 15
  • 15
8

I would say so. JDK7 adds the fork-join framework but that is an enhancement rather than a replacement for earlier concurrency tools.

Rich Drummond
  • 3,199
  • 13
  • 15
5

Yes. Still it is valid and i have got good feedback from my friends. It is one of the best book for learning the concurrency in java. You can read the review for Java Concurrency In Practice

Krishna
  • 6,706
  • 15
  • 64
  • 79
5

If you are going to start your project using Java 8 you might want to consider fresh books and tutorials as well because of new stuff appeared in Java 8 like streams,lambdas and new atomics - that changes development methods a little bit.

Den Roman
  • 469
  • 7
  • 7
0

Well, the book looks promising when I read certain preview chapters online. It gives enough insight on Java and general concurrency aspects. One can keep this book as a handy outfit when designing and implementing both naive and sophisticated concurrency applications.