Mi chiedevo come potrei sapere se un thread sta dormendo o meno. Ho cercato in giro e ho raccolto alcune informazioni, da quelle informazioni ho scritto un metodo isSleeping(): booleano che penso di poter inserire in una classe per determinare se il thread sta dormendo o meno. Voglio solo sapere cosa potrei aver perso. Nota: non ho esperienza di 0 giorni di esperienza.Determinare se il thread sta dormendo
//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;
}
Quindi questo non funzionerà su discussioni non si crea ... tra cui principale. Non so quanto sia facile arrivare sotto il cofano abbastanza da cambiare la JVM per usarla all'avvio e instradare tutta la creazione di thread attraverso di essa. Inoltre sarai permanentemente bloccato in uno stato di sospensione durante l'interruzione. – djechlin