• ベストアンサー

JavaマルチスレッドでSleepを使わずに終了

C#(.NET Framework)では、マルチスレッドで動作しているメソッドを抜けるには「Thread.Abort()」を実行してThreadAbortExceptionを発生させます。C#では原則として常にこの例外が発生しますが、Javaの場合、ループにSleep()がないと「InterruptedExceptionは到達不可能」というエラーが出てコンパイルができません。JavaでSleepを用意しない場合のループの抜け方はあるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

スレッドを中途中断できるように実装する場合の話ですよね? ここが参考になるかも。 http://okwave.jp/qa/q7258934.html interrupt は Abort と違って、フラグを立てるだけというところがミソです。

Tank2005
質問者

お礼

Thread.currentThread().isInterrupted()で判断するということですね。参考になりました。ご回答ありがとうございます。

関連するQ&A