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