import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class ExecutorExample implements Runnable{ public static void main(String[] args) throws InterruptedException { System.out.println("Creating tasks"); ExecutorService s= Executors.newFixedThreadPool(4); for(int i=0;i<10;i++) { ExecutorExample task= new ExecutorExample(); s.execute(task); } s.shutdown(); s.awaitTermination(100, TimeUnit.DAYS); System.out.println("All tasks finished"); } @Override public void run() { System.out.println(Thread.currentThread().getName()+":Running"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+":Stopping"); } }