Multithread -Details Themen
Ähnlichkeiten und Unterschiede zwischen Schlafmethode und Wait -Methode?
Ähnlichkeiten:
Lassen Sie den Faden in einem gefrorenen Zustand.
Unterschiede:
Der Schlaf muss die Zeit angeben
Warten können Zeit angeben oder nicht
Die Schlafzeit ist abgelaufen, der Faden befindet
Wenn das Warten keine Zeit hat, muss es durch Benachrichtigung oder Notifyall geweckt werden
Der Schlaf muss nicht synchronisiert werden
Warten müssen in der Synchronisation definiert werden
Wenn alle in der Synchronisation definiert sind
Schlaf gibt Ausführungsrechte frei, keine Schlösser
Warten Sie, um Ausführungsrechte zu veröffentlichen, Lock
sysschronisiert (obj) {wait (); // 0 1 2 Code ...} syschronisiert (obj) {notifyAll (); // 3 Code ...}Wie man einen Thread anhält
Stop -Methode
Die Stoppmethode ist veraltet. Ich fand, dass es nach dem Lesen der Beschreibung andere Lösungen gibt.
Thread End: Lassen Sie den Thread -Aufgabencode ausgeführt und die Ausführenmethode endet
Wie beende ich die Run -Methode?
Durch Definition einer Schleife
Hinweis: Kann er die Marke immer noch beurteilen, wenn sich der Thread in einem gefrorenen Zustand in der Aufgabe befindet?
Der sogenannte Interrupt-Zustand bedeutet nicht, den Faden zu stoppen.
Der Interrupt-Interrupt-Zustand verursacht, wenn der Ziel-Thread lange wartet, die Interrupt-Methode sollte verwendet werden, um das Warten auf den sogenannten Interrupt zu unterbrechen, um den Faden nicht zu stoppen.
Die Funktion des Interrupts besteht darin, den Gefrierzustand des Threads zu löschen und den laufenden Status in den Thread wiederherzustellen (den Thread für die CPU-Ausführung erneut qualifizieren).
Da es obligatorisch ist, wird es eine Ausnahme in der InterruptedException geben, und Sie können Ausnahmen im Fang fangen.
Ändern Sie bei Ausnahmebehandlung die Marke, um die Schleife zu beenden und die Auslaufmethode zu beenden.
Daemon -Thread
Daemon -Thread: Es kann auch als Hintergrund -Faden verstanden werden, und die zuvor erstellten Vordergrundfäden sind alle Vordergrund -Fäden.
Solange der Thread SetDaemon (True) nennt; Der Faden kann als Daemon -Thread gekennzeichnet werden.
Die Front-End-Hintergrund-Threads sind beim Ausführen gleich und erhalten die Ausführungsrechte der CPU.
Nur wenn es endet, ist es etwas anders.
Der Vordergrundfaden muss durch die Run -Methode enden und der Faden muss enden.
Der Hintergrund -Thread kann auch mit der Auslaufmethode enden und der Faden endet. Es gibt eine andere Situation.
Wenn alle Vordergrundfäden im Prozess enden, egal in welchem Status der Hintergrund -Thread endet, endet er und der Prozess endet.
Der Prozess endet mit den Vordergrundfäden, von denen alle abhängen.
Priorität der Faden
Thread-Priorität: nach Zahlen identifiziert, 1-10
Unter ihnen beträgt die Standardpriorität 5 und die offensichtlichsten drei Prioritätsniveaus 1, 5 und 10.
setPriority (thread.max_priority);
Fadengruppe
Threadgruppe: Threadgroup: Die Thread -Gruppe, zu der das neue Thread -Objekt gehört, kann über den Thread -Konstruktor identifiziert werden.
Die Vorteile von Thread -Gruppen sind, dass sie einheitliche Operationen auf mehreren Threads in derselben Gruppe ausführen können.
Standardmäßig gehören sie alle zur Haupt -Thread -Gruppe.
Anonyme interne Klasse
Runnable rn = new Runnable () {public void run () {}}; // Der obige Code entspricht den klassenanomymous -implements runnable {public void run () {}} runnable rn = new anymymous ();Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!