import java.util.concurrent.Executor; import java.util.concurrent.Executors; public class ExecutorTest2 { public ExecutorTest2() { System.out.println("Initial Threads:"); ConcurrentUtils.listThread(); Executor e = Executors.newSingleThreadExecutor(); e.execute(new RunnableTask()); try { Thread.sleep(1000L); } catch (InterruptedException ex) { ex.printStackTrace(); } System.out.println("Processing Threads:"); ConcurrentUtils.listThread(); try { Thread.sleep(2000L); } catch (InterruptedException ex) { ex.printStackTrace(); } System.out.println("Terminating Threads:"); ConcurrentUtils.listThread(); } class RunnableTask implements Runnable { public void run() { try { Thread.sleep(2000L); } catch (InterruptedException ex) { System.out.println("RunnableTask is Canceled"); return; } System.out.println("RunnableTask is Done."); } } public static void main(String[] args) { new ExecutorTest2(); } }