JDK5.0 新機能:java.util.concurrentパッケージ、newSingleThreadExecutor()

「11.3. スレッドプール」

まんま

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class C2008092400 implements Runnable {
    private String tab = "";
    public C2008092400(int tab) {
        for (int i = 0; i <= tab; i++) {
            this.tab += " ";
        }
    }
    public void run() {
        for(int i = 0; i < 3; i++) {
            System.out.println(tab + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args){
        ExecutorService ex = Executors.newSingleThreadExecutor();
        System.out.println("[Sending Tasks....]");
        for (int i = 0; i < 3; i++) {
            ex.execute(new C2008092400(i*3));
        }
        System.out.println("[Finish Sending!]");

        ex.shutdown();
        System.out.println("[ShutDown]");
    }
}

で、

[Sending Tasks....]
[Finish Sending!]
[ShutDown]
 0
 1
 2
    0
    1
    2
       0
       1
       2