Not Just Happens-Before: Unconventional Semantics
summary
Overview of Java memory-access ordering modes introduced around JDK 9—plain, opaque, release-acquire, and volatile—explaining their high-level guarantees and usage patterns. Shows how these nonstandard semantics are used in popular lock-free libraries (JCTools, Disruptor, Agrona, Aeron) and how understanding them helps choose and implement concurrent data structures for better performance.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 2:27Java memory model issues
- 6:03What are semantics
- 8:54Semantics in multithreading
- 12:04New Java semantics
- 13:29Plain semantics
- 17:01Defining semantics
- 19:50Apak semantics
- 26:59Apak semantics limits
- 27:41Aquarelle semantics
- 30:47Queue example
- 36:24Why volatile matters
- 43:47Summary
- 45:36Q&A
related talks
49mUnconventional memory model extensions in practice
41mJava 9 VarHandles Best practices, and why?
22mJava Memory Model
45mJava Memory Consistency Model
46mUnsafe (and Java 9/10) (RU)
36mConcurrency — Java Memory Model — Not Just for Eagles
40mA practical approach to Java Memory Model
58mClose Encounters of the JMM Kind
