So implementieren Sie die Methode „remove()“ von ThreadPoolExeceutor in Java

Die Sammlung von Threads, die bei der gemeinsamen Ausführung der Aufgaben hilft, wird Thread-Pool genannt. Der ThreadPoolExecutor in Java ist für die Ausführung der Worker-Threads verantwortlich. Es nutzt die Runnable()-Schnittstelle das enthält die laufen() Methode, die die Arbeitsthreads aus der Warteschlange ausführt. Es ist nützlich, um die Threads zu steuern. Es gibt verschiedene Methoden, um verschiedene Funktionen in der ThreadPoolExecutor-Klasse auszuführen.

In diesem Artikel werden wir das implementieren Methode „remove()“. der Thread-Pool-Executor-Klasse in Java.

Wie implementiert man die Methode „remove()“ von ThreadPoolExeceutor in Java?

Der entfernen() Die Methode der ThreadPoolExecutor-Klasse löscht eine Aufgabe aus der Warteliste des Executors, wodurch die Ausführung der Aufgabe gestoppt wird, wenn sie noch nicht gestartet wurde.

Um das umzusetzen entfernen() Methode der Thread-Pool-Ausführerklasse In Java müssen wir seine Syntax verstehen, wie es funktioniert und ob es Ausnahmen auslöst oder nicht.

Syntax der Methode „remove()“.

Die Syntax der Methode „remove()“ ist unten dargestellt:

Public boolean remove(Runnable job);

Hier ist der Job ein Parameter, der entfernt wird.

Diese Methode löst keine Ausnahme aus, da sie lediglich die Aufgabe entfernt.

Beispiel: Implementierung der Methode „remove()“.

Das folgende Codierungsbeispiel zeigt die Verwendung der Methode „remove()“ in Java:

import java.util.concurrent.*;
import java.lang.Thread;

//The class to implement the Remove() method.
class removeexample {
    public static void main(final String[] arguments) throws InterruptedException {
        // The statement from the threads in the pool.
        ThreadPoolExecutor remexe = (ThreadPoolExecutor) Executors.newCachedThreadPool();
        System.out.println("THE REMOVE METHOD OF THREAD POOL EXECUTOR");
        remexe.submit(new remTask());
        remexe.submit(new remTask());// The remove() method will remove the task.
        remexe.remove(new remTask());// This will shutdown the worker thread.
        remexe.shutdown();
    }

    // The Runnable Interface that used one method run()
    static class remTask implements Runnable {
        @Override
        public void run() {
            try {
                Long timespan = (long) (Math.random() * 5);
                // The thread that is currently running
                System.out.println("The thread that is currently running " + Thread.currentThread().getName());
                TimeUnit.SECONDS.sleep(timespan);
                // The thread that has completed running
                System.out.println("The threads that are completed " + Thread.currentThread().getName());
            } catch (InterruptedException f) {
            }
        }
    }
}

Im Code oben:

  • Innerhalb der wurde ein Testamentsvollstrecker mit den Aufgaben beauftragt Beispiel entfernen Klasse.
  • Zwei Aufgaben wurden eingereicht.
  • Der entfernen() Die Methode entfernt alle Aufgaben, deren Ausführung noch nicht begonnen hat.
  • Der abschalten() ist wichtig auszuführen, um den Worker-Thread zu schließen.
  • Der aktuell laufende Thread und die Threads, deren Ausführung abgeschlossen ist, wurden mit gedruckt println() Funktion.

Ausgabe

In der Ausgabe oben:

  • Die Methode „remove()“ hat die Aufgaben gestoppt, die derzeit ausgeführt worden wären.
  • Die aktuell laufenden Threads und die Threads, deren Ausführung abgeschlossen ist, wurden gedruckt.

Dies fasst die Implementierung der Methode „remove()“ in ThreadPoolExecutor in Java zusammen.

Abschluss

Der entfernen() Die Methode der ThreadPoolExecutor-Klasse löscht eine Aufgabe aus der Warteliste des Executors, wodurch die Ausführung der Aufgabe gestoppt wird, wenn sie noch nicht gestartet wurde. Die Thread-Pool-Executor-Klasse besteht aus verschiedenen Methoden, die je nach Bedarf angewendet werden. Die Thread-Pools sind vorteilhaft, da sie die Threads wiederverwenden, anstatt sie erneut zu erstellen. In diesem Artikel haben wir die Thread-Pool-Executor-Klasse besprochen entfernen() Methode im Detail.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen