Skip to content

Menu

  • About me
  • Chlebik Reviews
  • Garbage Collection theory
  • “Modern OS” book notes

Archives

  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024

Calendar

October 2024
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
28293031  
« Sep   Nov »

Categories

  • AWS
  • Back To Basics
  • Blog
  • Book Review
  • Certification
  • Erlang
  • GC Theory
  • Go
  • Java
  • Kubernetes
  • Monthly summary
  • Valuable links
  • Weekly summary

Copyright Michał 'Chlebik' Piotrowski 2026 | Theme by ThemeinProgress | Proudly powered by WordPress

Michał 'Chlebik' PiotrowskiAbstractions lie. I find out where.
  • About me
  • Chlebik Reviews
  • Garbage Collection theory
  • “Modern OS” book notes
Written by Michał Piotrowski2024-10-03

“Java concurrency in practice” book review

Book Review . Java Article

“Java concurrency in practice” is considered to be “the evergreen book”. Is it? Here is my take on it from the perspective of the year 2024.

Table of Contents

Toggle
  • Archeology of concurrency in practice?
  • Is this book really about concurrency?
  • Summary

Archeology of concurrency in practice?

The book itself was published in 2006. That’s almost twenty years ago! In the introduction (and I got 13th print!) the authors claim that all the examples should work with Java 5, with some functionality covered only in Java 6. Well, I feel old now (and I have taken my meds in the morning), because I still remember those Java versions 😉 When starting a lecture, I was worried that I would be exposed all the time to crude synchronized-based solutions. Like the ones I had to deal with when preparing for SCJP over 10 years ago (got 100% score in the concurrency section though). However, that was not the case.

Obviously the scope of the book is limited – parts of Java that were introduced after version 6 are not covered (e.g. fork-join pools, not to mention recent virtual threads). However, I don’t see it as a disadvantage. This book (at least in my opinion), was not created as a handbook for every Java dev. It was more about something else.

Is this book really about concurrency?

I must admit that it is hard to be an unbiased reviewer here. Although I had not dabbled with concurrent code that much in my career, I have some years of experience under my belt. Therefore, concepts presented in the books aren’t that new to me. What is more – having some experience with lower-level programming, probably I am used to seeing passing of variables , memory model and execution flow differently than the regular Java developer (which does not mean it’s better – just different).

Having said that, in my opinion “Java Concurrency in Practice” tries to show the overall idea behind concurrency/parallelism. Used examples (of both the recommended and discouraged ways of doing things) are just them – examples to illustrate the underlying main principle. Specific Java solutions that are used, are just the necessary “implementation details” that must be used to present the main idea. If you are looking for a comprehensive, and practical explanation of Java’s concurrency capabilities – I would rather recommend the “Well-grounded Java developer” book. It is way more up-to-date, and concentrates on giving the developer the actual tools to use in everyday work. Plain and simple.

Summary

I know that this review does not look that much as a review. In my opinion, the book defends itself, despite its age. However, before starting a lecture, you need to understand that it’s not a handbook. If you are OK with that – then you won’t be disappointed. Chapters are dense with knowledge, but provided in the timely manner. I recommend reading it slowly, and taking the time to process. 

The only technical problem I had was the ebook version. For reasons that are completely incomprehensible, all the listings in my copy weren’t actual listings! They were screenshots taken from the printed version. At least they look like it. It makes copying the code impossible and way less readable. What is more – listings are sometimes 3 pages away from its description/explanation. It really makes the whole experience harder and unpleasant. 

I have also taken all the summary-quotes from the book, and compiled it into a single list. You can find in my GitHub knowledge repository.

 

Tags: atomic, concurrency, executor, fork, java, jmm, memory model, parallelism, pool, thread

Leave a Reply Cancel reply

You must be logged in to post a comment.


  • Valuable links #52 – PostgreSQL internals free book2025-05-10
  • Valuable links #51 – Is this post-developer era?2025-05-05
  • Valuable links #50 – Confessions of an Impostor2025-04-30

  • May 2025 (2)
  • April 2025 (6)
  • March 2025 (8)
  • February 2025 (6)
  • January 2025 (7)
  • December 2024 (6)
  • November 2024 (8)
  • October 2024 (12)
  • September 2024 (15)
  • August 2024 (16)
  • July 2024 (16)
  • June 2024 (7)

  • AWS (3)
  • Back To Basics (5)
  • Blog (1)
  • Book Review (14)
  • Certification (3)
  • Erlang (1)
  • GC Theory (7)
  • Go (1)
  • Java (2)
  • Kubernetes (1)
  • Monthly summary (4)
  • Valuable links (53)
  • Weekly summary (19)

All the images (unless stated otherwise) come from Freepik.com

TwitterGithubLinkedinMail

Recent Posts

  • Valuable links #52 – PostgreSQL internals free book
  • Valuable links #51 – Is this post-developer era?
  • Valuable links #50 – Confessions of an Impostor
  • Valuable links #49 – The career craftsman manifesto
  • Garbage collection theory – Generational algorithms

Recent Comments

  1. Monthly summary #1 - June 2024 - Michał 'Chlebik' Piotrowski on About me
  2. Back to basics #3 - IP - Michał 'Chlebik' Piotrowski on Back to basics #2 – TCP/IP 101
  3. Weekly summary #6 - Michał 'Chlebik' Piotrowski on “Mastering API architecture” book review
  4. Weekly summary #5 - Michał 'Chlebik' Piotrowski on Back to basics #1 – Big O notation
  5. Weekly summary #5 - Michał 'Chlebik' Piotrowski on “Designing Data Intensive Applications” by Martin Kleppmann

Archives

  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024

Categories

  • AWS
  • Back To Basics
  • Blog
  • Book Review
  • Certification
  • Erlang
  • GC Theory
  • Go
  • Java
  • Kubernetes
  • Monthly summary
  • Valuable links
  • Weekly summary

Copyright Michał 'Chlebik' Piotrowski 2026 | Theme by ThemeinProgress | Proudly powered by WordPress