スレッドのステータスを取得する方法をJavaから確認する

Javaでは、スレッドの状態を取得するにはスレッドクラスのgetState()メソッドを使用します。getState()メソッドは、スレッドの状態を表すThread.State列挙型を返します。以下はスレッドの状態を取得する方法の例となるコードです。

public class Main {

public static void main(String[] args) {

 

Thread thread = new Thread(() -> {

 

try {

 

Thread.sleep(2000);

 

} catch (InterruptedException e) {

 

e.printStackTrace();

 

}

 

});

 

thread.start();

 

// 获取线程的状态

 

Thread.State state = thread.getState();

 

System.out.println(“线程状态:” + state);

 

try {

 

// 等待线程执行完毕

 

thread.join();

 

} catch (InterruptedException e) {

 

e.printStackTrace();

 

}

 

// 再次获取线程的状态

 

state = thread.getState();

 

System.out.println(“线程状态:” + state);

 

} }


上のコードでは、新しいスレッドを作成して開始し、getState()メソッドの呼び出しによりスレッドの状態を取得して、出力しています。さらに、join()メソッドを使用してスレッドが完了するまで待ち、再度getState()メソッドの呼び出しによりスレッドの状態を取得して、出力しています。コードを実行すると、以下のように出力が得られます。

线程状态:RUNNABLE
线程状态:TERMINATED

スレッドは実行時にはRUNNABLE状態となり、実行が完了するとTERMINATED状態に移行します。スレッドはNEW、BLOCKED、WAITINGなどの状態も持ち、getState()メソッドで状態を取得することで適切に処理できます。

bannerAds