Heim > Java > javaLernprogramm > Hauptteil

Wie kann man Threads in Java ordnungsgemäß starten, stoppen und neu starten?

Mary-Kate Olsen
Freigeben: 2024-10-31 11:37:29
Original
632 Leute haben es durchsucht

How to Gracefully Start, Stop, and Restart Threads in Java?

Thread-Lebenszyklus in Java: Starten, Stoppen, Neustarten

Thread-Management ist entscheidend für die Parallelität in Java. In diesem Artikel befassen wir uns mit dem Rätsel des Startens, Stoppens und Neustartens eines Threads.

Starten eines Threads

Instanziieren einer Runnable- oder Callable-Klasse und Übergeben an eine Thread-Objekt ist die herkömmliche Art, einen Thread zu starten.

Einen Thread stoppen

Trotz häufiger Missverständnisse wird das abrupte Stoppen eines Threads nicht empfohlen. Signalisieren Sie stattdessen dem Thread, dass er ordnungsgemäß beendet werden soll:

  1. Definieren Sie eine flüchtige boolesche Variable, um den gewünschten Beendigungsstatus anzugeben (isTerminating).
  2. Überprüfen Sie isTerminating regelmäßig in der Ausführungsmethode des Threads.
  3. Wenn isTerminating wahr ist, stoppen Sie die Ausführung des Threads.

Neustarten eines Threads

Sobald ein Thread gestoppt wird, kann er nicht direkt neu gestartet werden. Erwägen Sie jedoch diese Optionen:

  • Neuen Thread erstellen: Beenden Sie den vorhandenen Thread und erstellen Sie einen neuen mit derselben Aufgabe.
  • Unterbrechen /Thread fortsetzen: Anstatt den Thread zu stoppen, halten Sie ihn an. Wenn es wieder aufgenommen werden muss, benachrichtigen Sie es, um die Ausführung fortzusetzen. Dadurch wird sichergestellt, dass der Thread am Leben bleibt und der Aufwand für das wiederholte Erstellen und Zerstören von Threads vermieden wird.

Beispiel für das Beenden eines Threads:

public class Task implements Runnable {

    private volatile boolean isTerminating;

    @Override
    public void run() {
        while (!isTerminating) {
            // Perform task
        }
        System.out.println("Thread terminated.");
    }

    public void setIsTerminating(boolean terminating) {
        this.isTerminating = terminating;
    }
}
Nach dem Login kopieren

Im Wesentlichen Rufen Sie zum Beispiel setIsTerminating(true) und join() auf, um darauf zu warten, dass der Thread ordnungsgemäß beendet wird.

Das obige ist der detaillierte Inhalt vonWie kann man Threads in Java ordnungsgemäß starten, stoppen und neu starten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!