import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class CountMonitor { private int sharedCounter = 0; private Lock lock = new ReentrantLock(); public void increment() { lock.lock(); try { sharedCounter++; } finally { lock.unlock(); } } public int getCounter() { return sharedCounter; } }