スレッドがスリープ状態にあるかどうかをどのように知ることができるのだろうかと思っていました。 私は検索し、いくつかの情報を集めて、私がメソッドを書いたそれらの情報を構成しました isSleeping():booleanスレッドがスリープ状態かどうかを判断するためにクラスに入れることができると思います。私は逃したかもしれないことを知りたいだけです。注:私は0日の経験を経験していません。スレッドがスリープ状態にあるかどうかを調べる
//isSleeping returns true if this thread is sleeping and false otherwise.
public boolean isSleeping(){
boolean state = false;
StackTraceElement[] threadsStackTrace = this.getStackTrace();
if(threadsStackTrace.length==0){
state = false;
}
if(threadsStackTrace[0].getClassName().equals("java.lang.Thread")&&
threadsStackTrace[0].getMethodName().equals("Sleep")){
state = true;
}
return state;
}
考えてみましょうこれは、あなたが作成していない...メインを含むスレッド上で動作しません。 JVMを起動して起動時にこれを使用してすべてのスレッド作成をルートするように変更するだけで十分であるかどうかはわかりません。さらに、割り込みを受けた場合、スリープ状態になることがあります。 – djechlin