- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Thread.sleep()について(休止の対象は)。)
Thread.sleep()についての疑問
このQ&Aのポイント
- JavaでThread.sleep(duration);と書く場合、停止の対象となるスレッドはどうなるのか
- Thread.sleep()がインスタンスから呼び出せるなら、thread(インスタンス).sllep()と書くことでそのインスタンスを休止するが、Thread.sleep()と書くのでわかりずらい
- メインスレッドを対象としているのか、スレッドを継承したクラスでThread.sleep()と書くとそのクラスを休止させるのか
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Thread.sleepを実行したスレッドを停止します。 スレッドはクラスごとではないので、あるクラスのメソッドを別クラスで作ったスレッドから実行すると、呼び出したほうのスレッドで実行されることになります。 例えば、 public class xx{ public static void main(String[] args){ Thread thread1 = new Thread(){ @Override public void run(){ while(true){ try { Thread.sleep(1000); System.out.println("abc"); } catch (InterruptedException ex) { ex.printStackTrace(); } } } }; thread1.start(); } } こうしたら、thread1が停止されます。 あとJavaだとwhile(1)だとコンパイルエラーになるような? while(true)にしないと。