トップページ >  Java >  スレッドの停止を待つ
初版2006/08/30: 最終更新日2006/08/30
  スレッドの停止を待つ
目次
スレッドの停止を待つ
スレッドの停止を待つ
スレッドの停止を待つには join() メソッドを使用します。
下記のようにスレッドの状態を調べてfalseとなる間でループするのも一つの方法ですが、これは無限ループ中でisAlive()メソッドを繰り返し実行しているため、負荷がかかります。
このため、スレッドの停止を待つにはjoinを使用します。
以下、スレッドクラスの例を見てください。例では実行中スレッドの名前を出力します。

public class MyThread implements Runnable{
	public void run(){
		for (int i=0;i<10;i++){
			System.out.println(Thread.currentThread().getName());
		}
	}
}
以下のTESTクラスでは、上記スレッドクラスをインスタンス化し、スレッドを実行しています。
そのあとjoin()メソッドを使用してスレッドが終了するまでmainのスレッドを止め、スレッドの実行が終了した時点でjoin()以下に進み、スレッドの状態を標準出力しています。

public class TEST{
	public static void main(String[] args){
		MyThread thread1 = new MyThread();
		
		Thread th = new Thread(thread1);
		th.start();

		try {
			th.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("状態: " + th.isAlive());
	}
}
上記、Javaアプリケーションを実行すると、スレッド名が表示され、スレッドが実行終了するとjoin()メソッド以下に進み、スレッドの状態が表示されます。
出力結果は以下のようになります。

Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
状態: false


Information
リンクについて
個人情報保護方針
Yahoo!ブックマークに登録

社長&社員ブログ
やる気はあるがお金がない㈱コンフレッジブログ

slot大好きな㈱コンフレッジ社員のブログ
広告

サイト内検索
当サイト内を検索できます↓


PV