| preferred AP College board partner for AP classes
AP Computer Science A/Unit 2: Using Objects
Start Practice TestPractice Test
About Exam
hard
Java Thread Safety and Synchronized Methods
< Prev
Next >

Considering the above program, what can be said about its thread safety?

public class SyncCounter {
    private int count = 0;
    public synchronized void increment() { count++; }
    public int getCount() { return count; }
}

public class Worker extends Thread {
    private SyncCounter counter;
    public Worker(SyncCounter 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 {
        SyncCounter c = new SyncCounter();
        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

A race condition exists because the getCount() method is unsynchronized.

B

Deadlock is possible due to nested synchronized calls.

C

The program safely synchronizes counter increments, preventing race conditions.

D

The counter variable could be updated inconsistently because it isn’t declared as volatile.

Hint
Did You Know?
Explain Why
Explain All Answers
Check Answer
Show Correct Answer
Report Question

Question Leaderboard

Not enough data yet to show leaderboard.

No comments yet. Be the first to comment!

AI Tutor

How can I help?

APFIVE © 2020.
Email: [email protected]|Privacy Policy