package com.example.lambda;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ShutdownExample {

	public static void main(String[] args) {
		ExecutorService executor = Executors.newFixedThreadPool(2);
		Runnable task = () -> {
			try {
				Thread.sleep(2000);
				System.out.println("Task executed");
			} catch (InterruptedException e) {
				System.err.println("Task interrupted");
			}
		};
		executor.submit(task);
		executor.submit(task);
		
//		executor.shutdown();
		
		try {
			if (!executor.awaitTermination(3, TimeUnit.SECONDS)) {
				// wait 3 seconds, then force shutdown
				executor.shutdownNow();
			}
		} catch (InterruptedException e) {
			executor.shutdownNow();
		}
	}
}
