Quick Answer
volatile ensures a variable is read from and written to main memory, not a CPU-specific cache. Solves the visibility problem - one thread's write is immediately visible to all other threads. Does NOT guarantee atomicity - volatile int count++ is still a read-modify-write race condition (use AtomicInteger instead). Use volatile for simple flags (boolean running = true/false) and singleton double-checked locking.
Answer
volatile ensures visibility of variable changes. Prevents instruction reordering for that variable. Does not guarantee atomicity for compound operations.
S
SugharaIQ Editorial Team
Verified Answer
This answer has been peer-reviewed by industry experts holding senior engineering roles to ensure technical accuracy and relevance for modern interview standards.