[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 1609] Sleep と interrupt のサンプル
こんばんは。また武川です。
第5回読書会でThread#SleepとThread#interruptを使ったサンプル
を書くとか書かないとかいう話があったので、試しに
書いてみました。
いままで、盲目的にInterruptedExceptionをキャッチしていま
したが、使い方がわかったような気がします。
ソースは下に載せてありますが、ポイントとしては、
メインスレッドでThread#joinを使わないと、フラグを変える前に
メインスレッドが終了してしまうというところでしょうか。
/*
* @(#) SleepTest.java
* @id $Id$
*/
/** Sleepとinterruptを使用したサンプル
* @author TAKEKAWA,Tsutomu <takekawa@xxxxxxxxxxxxxx>
* @version $Revision$, $Date$
*/
public class SleepTest implements Runnable {
boolean isInterrupted = false;
public void run(){
try{
Thread.sleep(10000);
}catch(InterruptedException e){
isInterrupted = true;
}
}
public static void main(String[] args) throws Exception{
SleepTest s= new SleepTest();
Thread test = new Thread(s);
test.start();
test.interrupt();
test.join();
System.out.println("Interrupted is " + s.isInterrupted);
}
}
ではでは。