Question: concurrency problem part 1: Your friend has written a class for safely computing with integers in a concurrent environment. To this end, the class synchronizes
concurrency problem
part 1:
Your friend has written a class for safely computing with integers in a concurrent environment. To this end, the class synchronizes all methods.
Describe a scenario where two threads operating concurrently on two SafeInt objects can result in an undesirable outcome.
public class SafeInt { public SafeInt() { i = 0; }
synchronized void set(int x) { i = x; }
synchronized int get() { return i; }
synchronized void add(SafeInt other) { i = i + other.get(); }
private int i; }
part 2:
How would you fix the problem (show your changes to the code)?
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
