Java MCQ: Which of the following best describes atomic variables in Java?
synchronized
keywordAnswer:
Explanation:
Atomic variables in Java are variables that are read and written atomically, ensuring thread safety without the need for explicit synchronization. These variables are part of the java.util.concurrent.atomic
package and include classes like AtomicInteger
, AtomicLong
, AtomicBoolean
, and AtomicReference
.
Atomic variables use low-level atomic operations provided by the CPU, such as compare-and-swap (CAS), to ensure that updates to the variable are performed in a thread-safe manner. This allows multiple threads to read and write to the variable concurrently without causing race conditions.
Here’s an example of using an AtomicInteger
:
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicVariableExample {
private final AtomicInteger count = new AtomicInteger(0);
public void increment() {
count.incrementAndGet();
}
public int getCount() {
return count.get();
}
public static void main(String[] args) {
AtomicVariableExample example = new AtomicVariableExample();
example.increment();
System.out.println("Count: " + example.getCount());
}
}
In this example, AtomicInteger
is used to ensure that the increment()
method is thread-safe. The incrementAndGet()
method atomically increments the value of the variable and returns the updated value.
Atomic variables are a powerful tool in Java concurrency, providing a simpler and more efficient alternative to synchronization for scenarios where you need to perform atomic updates on variables.
Reference links:
https://www.rameshfadatare.com/learn-java-programming/
https://www.javaguides.net/p/java-tutorial-learn-java-programming.html