Tag

jcstress

0 views collected around this technical thread.

High Availability Architecture
High Availability Architecture
Mar 16, 2022 · Fundamentals

Understanding Ordering Issues and Volatile in Java Concurrency

This article explains why intuition fails in multithreaded Java programs, demonstrates ordering problems with simple thread examples, shows how instruction reordering and JIT optimizations can produce unexpected results, and presents the volatile keyword and jcstress testing as reliable solutions to ensure correct visibility and ordering.

JavaMemory Modelconcurrency
0 likes · 9 min read
Understanding Ordering Issues and Volatile in Java Concurrency
JD Tech
JD Tech
Apr 2, 2021 · Fundamentals

Why Intuition Fails: Ordering, Instruction Reordering, and Volatile in Java Concurrency

The article explains how Java's memory model and compiler optimizations can reorder writes, causing ordering bugs in multithreaded programs, demonstrates the issue with simple and jcstress tests, and shows that declaring the flag as volatile restores the expected behavior.

JavaMemory Modelconcurrency
0 likes · 10 min read
Why Intuition Fails: Ordering, Instruction Reordering, and Volatile in Java Concurrency