import java.util.concurrent.Executors; import java.util.stream.IntStream; import java.util.concurrent.TimeUnit; public class MultiThreading { private int number = 0; public static void main(String[] args) throws InterruptedException { final var multiThreading = new MultiThreading(); final var service = Executors.newFixedThreadPool(3); IntStream.range(0, 1000) .forEach(count -> service.submit(multiThreading::increment)); service.awaitTermination(1000, TimeUnit.MILLISECONDS); System.out.println(multiThreading.number); } public synchronized void increment() { number += 1; } }