Concurrency Control in Java: Comparing synchronized and volatile
synchronized vs volatile
In Java concurrency, synchronized and volatile are two fundamental mechanisms for ensuring thread safety, but they serve different purposes. The synchronized keyword establishes a mutual exclusion lock. When a method or code block is decorated with synchronized, only one thread can execute that critical section at any g ...
Posted on Wed, 08 Jul 2026 17:16:06 +0000 by Averice
Understanding Java's Volatile Keyword in Multithreading Environments
In our previous discussion on Java's memory model, we explored the three fundamental characteristics of threads and the happens-before principle. This article focuses on the volatile keyword, examining its underlying mechanisms and practical applications. By the end, you'll have a deeper understanding of how volatile works and its appropriate u ...
Posted on Mon, 08 Jun 2026 18:43:49 +0000 by tanju
Why a Simple Volatile Test Hangs in IntelliJ IDEA’s Run Mode but Not Debug
Take a look at this piece of code from Understanding the Java Virtual Machine:
public class VolatileTest {
public static volatile int race = 0;
public static void increase() {
race++;
}
private static final int THREADS_COUNT = 20;
public static void main(String[] args) {
Thread[] threads = new Thread[THREA ...
Posted on Thu, 07 May 2026 01:00:19 +0000 by zyntrax