I have seen usage of synchronized block by this so far but recently I learned that using dummy object is preferable. I found the following topic related to this.
Java sy
You are correct. In this case you need two different objects to synchronize on them separately.
For locking purpose the easiest way is to create Object
objects.
Object lock1 = new Object();
Object lock2 = new Object();
That is exactly the point of lock objects - you can use different locks for different operations. Assuming it makes sense to run addA
and addB
concurrently (and from the looks of it - it definitely does), you should indeed have two separate locks, one for each method.