import java.util.concurrent.locks.*; public class MyTask implements Runnable { private int sharedCounter = 0; private final int MAX_COUNT = 10000; private Lock laas = new ReentrantLock(); static int traadTeller = 1; private int id = 0; public void createId() { laas.lock(); try { id = traadTeller++; } finally { laas.unlock(); } } @Override public void run() { laas.lock(); try { createId(); for (int i = 0; i < MAX_COUNT; i++) { sharedCounter += 1; } System.out.println("Traad nr " + id + ". Done! The shared counter is now: " + sharedCounter); } finally { laas.unlock(); } } }