ict_note_java_sample_thread1


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Thread の活性化、非活性化の切り替えを行うクラスのサンプル

public class AppMain
{
public static void main(String[] args)
{
	ThreadTest th = new ThreadTest();
	
	th.start();
	th.issleep = true;
	try {
		if (th.isAlive()) {
			// threadが死んでる場合はもう一度生成すべき!!!				
			th.mark = 5;
			th.issleep = false;
			
			synchronized (th) {
				th.notify(); //復活
			}
			// スレッド休み
			th.issleep = true;
			
			// die Thread
			th.isend = true;
		}
	}
	catch (Exception e) {
		e.printStackTrace();
	}
}
}

public class ThreadTest extends Thread {
public int mark = 0;

public boolean issleep = false;
public boolean isend = false;

public void run() {
	
	while (!isend) {
		if (issleep) {
			try {
				synchronized (this) {
					wait();
				}
			}
			catch (Exception e) {
				e.printStackTrace();
				continue;
			}
		}
	
		System.out.println("起動中 mark=" + mark);
	}
}
}