JCStress: Diving into Concurrency and Distributed Systems in Java
summary
JCStress, the OpenJDK tool, is presented as a way to test Java concurrency by exploring all possible thread interleavings to find visibility, ordering, and atomicity bugs that unit tests miss. The talk demonstrates writing and running JCStress tests, explains what the JVM actually does behind threads (CPU caches, volatile semantics, memory model effects), and shows how to apply these tests to harden concurrent and distributed Java applications.
AI-written summary · about
chapters (14)
- 0:00Concurrency bugs
- 1:52CPU and cache behavior
- 4:36Java Memory Model
- 6:00JCStress overview
- 8:29Vote app demo
- 10:19Writing JCStress test
- 13:27Running and analyzing tests
- 15:35Fixing bug with synchronized
- 16:37Concurrent object limits
- 18:23Atomic operations
- 19:06Database concurrency issues
- 21:38Distributed systems comparison
- 23:22Best practices
- 25:31Q&A
related talks
02h 01mWorkshop: Java Concurrency Stress (JCStress). Part 2
01h 20mWorkshop: Java Concurrency Stress (JCStress). Part 1
36mConcurrency — Java Memory Model — Not Just for Eagles
49mJava Dark Threads
01h 10mWorkshop. Lincheck: Testing concurrency on the JVM (Part 1)
40mA practical approach to Java Memory Model
41mEverything You Don’t Want to Know About Concurrency on the JVM
46mJava 21: The revolution of virtual threads - A Deep dive
