public class Counter { private final Object lock = new Object(); @GuardedBy("lock") private int count; public void increment() { synchronized(lock) { count++; } } public int getCount() { synchronized(lock) { return count; } } }