2016-08-08 12 views
0

Ich habe eine Klasse, die Threads erstellt, wie:Wie bekomme ich einen Thread-Status von einem anderen Thread?

for (int i = 0; i < t.size(); i++) { 
    System.out.println("[Thread] info: " + t.toString()); 

    r = new rt(t.get(i).getGridPath(), t.get(i).getIdTower()); 
    Thread rThread = new Thread(r); 
    rThread.start(); 
    pids.add(rThread.getName());   
}  

gUp = new gridUpdate(pids); 
Thread updateGrid = new Thread(gUp); 
updateGrid.start(); 

Die Funktion updateGrid Thread überprüfen, ob der Status des jeweiligen rThread beendet. Wenn es wahr ist, macht updateGrid eine Reihe von Funktionen.

Wie kann ich den Zustand jedes rThread von updateGrid Klasse?

Beachten Sie, dass ich übergeben die Threads PID für den Konstruktor und innerhalb der run() -Methode habe ich diese Anweisung, aber immer zurück, was bedeutet, dass es neue Thread ist.

for (int i = 0; i < pids.size(); i++) {    
    t = new Thread(pids.get(i));     
    System.out.println(t.getState()); 
} 
+3

Warum erstellen Sie eine Liste von Thread-Namen, erstellen Sie eine Liste von Threads und erhalten Sie diesen Thread, um getState() aufzurufen – SomeDude

Antwort

0

Als @svasa kommentiert, änderte ich den Listentyp von List<String> zu List<Thread> und hinzugefügt jeden Thread zur Liste, wie:

pids.add(rThread); 

So sein getan!

Dank @svasa!

Verwandte Themen