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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 11:37:29624Durchsuche

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;
    }
}

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!

Stellungnahme:
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