2007年10月15日月曜日

join メソッド

マルチスレッドにおいて1つのスレッドが終了してからもうひとつのスレッドを動作させるには join メソッドを使います。
ta と tb というスレッドがある場合
ta.join() で ta が完了するまで他のスレッドは実行を待機する。


class RA implements Runnable {
    public void run(){
        for (int i = 0; i < 100; i++) {
            System.out.println("スレッド"
                + Thread.currentThread().getName());
        }
    }
}
class RB implements Runnable {
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("スレッド"
                + Thread.currentThread().getName());
        }
    }
}
public class ThreadRunnable1 {
    public static void main(String[] args) {
        RA ra = new RA();
        RB rb = new RB();
        Thread ta = new Thread(ra);
        Thread tb = new Thread(rb);
        ta.setName("A");    // スレッド名をセット
        tb.setName("B");    // スレッド名をセット
        ta.start();
        try {
            ta.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        tb.start();
    }
}

出力結果は
スレッドA がすべての回数出力されてから スレッドB の出力が始まる。

0 件のコメント: