Wie stoppt man Threads in Java?

Ich habe ein Java-Programm mit GUI erstellt und möchte eine Stop-Button-Funktionalität, bei der ein Benutzer, der auf den Stop-Button klickt, das Programm stoppen muss.

In meinem Programm startet der Haupt-Thread andere 10 Threads und ich möchte, dass jedes Mal, wenn auf die Stopp-Schaltfläche geklickt wurde, alle 10 Threads vor dem Haupt-Thread gestoppt werden müssen.

Zweitens möchte ich, dass jedes Mal, wenn ein Thread dieser 10 Threads gestoppt wird, zuerst alle zuvor geöffneten Ressourcen geschlossen werden müssen, z. B. die Verbindung zu einer Datenbank usw.

Ich habe den Code wie von ........ beantwortet implementiert.

Jetzt gibt es ein Problem.

Meine Threadklasse ist wie folgt:

public class ParserThread implements Runnable {
    private volatile boolean stopped = false;

    public void stopTheThread() {
        stopped = true;
    }
    :
    :
}

Und unten ist der Haupt-Thread, der 10 Threads ab der Funktion start () startet.

public class Main() {
    Thread [] threads;

    public void start() {
        for(int i = 0; i < 10; i++) {
            threads[i] = new Thread(new ParserThread());
        }       
    }

    public void stop() {
        // code to stop all the threads
    }
}

Jetzt möchte ich die Stop-Methode des ParserThread aufrufen, um "Stopped = True" zu setzen, um den Thread zu stoppen. Ich möchte, dass diese Sache für alle 10 Threads erledigt wird.

Wie kann ich diese Stopp-Methode aufrufen? Ich möchte, dass es in der stopAllThreads () -Methode der Main-Klasse durchgeführt wird.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage