import java.util.concurrent.Callable; import java.util.concurrent.Executors; import java.util.concurrent.ExecutorService; public class ExecutorTest7 { public ExecutorTest7() { ExecutorService e = Executors.newCachedThreadPool(); System.out.println("Initial Thread Pool:"); ConcurrentUtils.listThread(); for (int i = 0; i < 5; i++) { e.execute(new RunnableTask("Task" + i)); } System.out.println("Processed Threads:"); ConcurrentUtils.listThread(); try { Thread.sleep(10000L); } catch (InterruptedException ex) { ex.printStackTrace(); } e.shutdown(); System.out.println("Terminating Threads:"); ConcurrentUtils.listThread(); } class RunnableTask implements Runnable { private String name; public RunnableTask(String name) { this.name = name; } public void run() { System.out.println(name + " Starts."); try { Thread.sleep(1000L); } catch (InterruptedException ex) { System.out.println(name + " is Canceled"); return; } System.out.println(name + " is Done."); } } public static void main(String[] args) { new ExecutorTest7(); } }

AltStyle によって変換されたページ (->オリジナル) /