import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class MyTask2 implements Runnable { private final Lock lock = new ReentrantLock(); private final int MAX_COUNT = 1000; private int sharedCounter = 0; public void run() { System.out.println("Starting! Shared counter = " + sharedCounter); for (int i = 0; i < MAX_COUNT; i++) { lock.lock(); try { sharedCounter = sharedCounter + 1; } finally { lock.unlock(); } } System.out.println("Done! Shared counter = " + sharedCounter); } }