Java Thread Race Condition
Which statement best describes a potential concurrency issue in the following program?
public class Counter {
private int count = 0;
public void increment() { count++; }
public int getCount() { return count; }
}
public class Worker extends Thread {
private Counter counter;
public Worker(Counter counter) { this.counter = counter; }
public void run() {
for (int i = 0; i < 1000; i++) {
counter.increment();
}
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
Counter c = new Counter();
Thread t1 = new Worker(c);
Thread t2 = new Worker(c);
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println("Count is: " + c.getCount());
}
}
A
The unsynchronized increment() method creates a race condition as threads concurrently modify the shared variable ‘count’.
B
The join() calls could throw a checked exception leading to unexpected termination.
C
There is a compile-time error due to incorrect thread instantiation.
D
A deadlock occurs because threads wait on each other to complete.
Question Leaderboard
Not enough data yet to show leaderboard.
APFIVE