Wenn ein Java -Programm startet, wird ein Thread sofort ausgeführt. Die Bedeutung des Hauptfadens spiegelt sich in zwei Aspekten wider:
Obwohl der Haupt -Thread automatisch erstellt wird, wenn das Programm startet, kann er von einem Thread -Objekt gesteuert werden. Dazu müssen Sie die Methode CurrentThread () aufrufen, um einen Hinweis darauf zu erhalten, ein öffentliches statisches Mitglied der Thread -Klasse. Die übliche Form ist wie folgt:
statischer Fadenstromthread ()
Diese Methode gibt einen Verweis auf den Thread zurück, der ihn genannt hat. Sobald Sie einen Verweis auf den Haupt -Thread erhalten haben, können Sie den Hauptfaden so steuern, wie Sie es tun, um andere Threads zu steuern.
Beginnen wir mit den folgenden Beispielen:
// Kontrolle des Haupt -Threads.Class ThreadDemo {public static void main (String args []) {Thread t = Thread.CurrentThread (); des Threads T.SetName ("Mein Thread"); .Println (n);In diesem Programm wird der Verweis auf den aktuellen Thread (oder den Haupt -Thread) durch Aufrufen von CurrentThread () erhalten, der in der lokalen Variablen t gespeichert ist. Das Programm zeigt dann die Informationen des Threads an. Anschließend ändert sich das Programm setName (), um den internen Namen des Threads zu ändern. Die Threadinformationen werden erneut angezeigt. Dann beginnt eine Zykluszahl von 5 zu verringern und jedes Mal eine Sekunde lang zu pausieren. Pause erfolgt durch die Sleep () -Methode. Die Aussage von Sleep () sieht eindeutig vor, dass die Verzögerungszeit 1 Millisekunde beträgt. Achten Sie auf den Versuch/Fangblock außerhalb der Schleife.
Die Sleep () -Methode der Thread -Klasse kann eine InterruptedException -Ausnahme ausschöpfen. Diese Situation tritt auf, wenn andere Fäden den schlafenden Faden stören wollen. Dieses Beispiel druckt einfach die Nachricht, ob sie unterbrochen wurde. In den tatsächlichen Programmen müssen Sie mit solchen Problemen flexibel sein. Das Folgende ist die Ausgabe dieses Programms:
Aktueller Thread: Thread [Main, 5, Main] After Name Änderung: Thread [My Thread, 5, Main] 54321
Beachten Sie, dass T als Ausgabe verwendet wird, wenn der Parameter in der Anweisung Println () verwendet wird. Die Anzeigereihenfolge: Threadname, Priorität und Gruppenname. Standardmäßig ist der Name des Haupt -Threads der Haupt. Seine Priorität beträgt 5, was auch der Standardwert ist, und Main ist auch der Name der Threadgruppe, zu der sie gehört. Eine Thread -Gruppe ist eine Datenstruktur, die den Status der Threads als Ganzes steuert. Dieser Prozess wird von einer proprietären Laufzeitumgebung behandelt, sodass ich hier nicht auf Details eingehen werde. Nachdem der Threadname geändert wurde, wird T erneut ausgegeben. Diesmal wird der neue Threadname angezeigt.
Lassen Sie uns die von der Thread -Klasse im Programm definierten Methoden genauer untersuchen. Die Sleep () -Methode zeigt an, dass der Faden aufgerufen wird, um nach der Millisekundenzeit zu suspendieren. Die übliche Form ist wie folgt:
Statische Leereschlaf (lange Million Sekunden) wirft unterbrochen
Die Zeit zum Aufhängen wird deutlich als Millisekunden definiert. Diese Methode kann eine InterruptedException -Ausnahme ausführen.
Es gibt eine zweite Form der Sleep () -Methode, die unten angezeigt wird, sodass Sie angeben können, ob sich die Zeit in Millisekunden oder Nanosekunden als Zyklen befindet.
Statische Leere (lange Millionalsekunden, int Nanosekunden) löst unterbrochene Ausnahme aus
Das zweite Formular ist nur verfügbar, wenn der Zeitraum in Nanosekunden zulässig ist. Wie im obigen Programm gezeigt, können Sie SetName () verwenden, um den Thread -Namen festzulegen und GetName () zu verwenden, um den Threadnamen zu erhalten (dieser Vorgang wird im Programm nicht reflektiert). Diese Methoden sind Mitglieder der Thread -Klasse und werden wie folgt deklariert:
endgültiger void setName (String threadName) Final String getName ()
Hier bezieht sich der Threadname speziell auf den Threadnamen.