import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class SumCalculator { static class Worker implements Runnable { private final int n; Worker(int n) { this.n = n; } @Override public void run() { int sum = calculateSum(n); System.out.println("Sum of first " + n + " integers: " + sum + " (Calculated by " + Thread.currentThread().getName() + ")"); } private int calculateSum(int n) { return n * (n + 1) / 2; // Formula for sum of first n integers } } public static void main(String[] args) throws InterruptedException { ExecutorService executor = Executors.newFixedThreadPool(4); // 4 worker threads // Submitting tasks with different values of 'n' for (int i = 1; i <= 8; i++) { executor.submit(new Worker(i * 10)); } executor.shutdown(); executor.awaitTermination(1, TimeUnit.MINUTES); System.out.println("All tasks completed."); } }