Wie man einen Verweis auf ein Java-Thread
Ausführen von Code unter Java-Threads ist eine leistungsstarke Möglichkeit, eine Menge getan in kurzer Zeit zu bekommen. Zum Überwachen und steuern die Threads, müssen Sie ein Thread-Objekt gebunden an den Thread-fähigen Code einrichten. Dies gibt Ihnen volle Kontrolle über die erstellten Threads.
Anweisungen
1 Erhalten Sie die Thread-ID mit dem folgenden Befehl innerhalb der obligatorischen run()-Funktion, die den Thread ausgeführt wird:
Thread.currentThread().getId()
2 Das Thread-Objekt eine öffentliche Variable weisen Sie möchten Sie steuern den Thread aus anderen Teilen des Programms, oder Drucken Sie es aus direkt, wenn Sie einfach wissen wollen, was läuft zu:
public void MyThreadId = 0;
öffentliche leere führen () {}
System.out.println ("Thread-Namen:" + Thread.currentThread().getName(); Der Threadname drucken
MyThreadId = Thread.currentThread().getId(); Eine öffentliche Variable zuweisen die Thread-ID
}
3 Erstellen Sie einen neuen Thread-Objekts zum Steuern oder einen Thread aus anderen Teilen des Programms zu überwachen. Sie können auch das Objekt aus einem außen-Thread wie den Hauptprozess greifen, durch den Aufbau eines kompletten Tree der laufenden Threads und Thread-Gruppen. Rufen Sie dies aus der Main()-Funktion Ihrer Java-Klasse:
Gehen Sie die Struktur der Stammgruppe finden
ThreadGroup MyRootGroup = Thread.currentThread () .getThreadGroup ();
ThreadGroup ParentGroup;
während ((ParentGroup = myRootGroup.getParent())! = Null) {}
rootGroup = parentGroup;
}
Sichern von der Wurzel, erstellen ein Thread-Objekt für jeden Thread in Ihrem Prozess zu Fuß
Fäden [] MyThreads = new Thread [myRootGroup.activeCount()];
während (rootGroup.enumerate (MyThreads, wahr) == myThreads.length) {}
myThreads = new Thread[ myThreads.length * 2 ];
}
Jetzt können Sie jeden Thread in Ihrem Prozess einzeln zugreifen. Zum Beispiel:
System.out.println ("Thread-Namen:" + myThreads[0].currentThread().getName();
MyThreadId = myThreads[0].currentThread().getId();