Concurrency basics · interview question
Why is the 'volatile' keyword not sufficient for incrementing a shared counter?
Multiple choiceMediumchapter-15-curatedpremiumconcurrencythe-volatile-keyword
Answer and explanation
Correct answer
B. Volatile does not ensure atomicity of operations
Why
Using 'volatile' ensures visibility, but incrementing involves multiple steps (read, modify, write) that are not atomic. Hence, race conditions can still occur.
Test yourself on Concurrency basics
A free test with instant, explained results. No account needed.
More Concurrency basics questions
- How can you avoid deadlocks when using multiple ReentrantLocks in a method?
- What does the 'volatile' keyword guarantee in Java?
- Why might using 'volatile' alone be insufficient for ensuring thread safety when updating a shared counter?
- Consider the following code snippet. What issue might occur if 'flag' is not declared as 'volatile'?
- When using synchronized blocks, how can you ensure fairness among threads?
- How would you explain a common use case for 'volatile' variables in an interview?