So implementieren Sie die isTerminated()-Methode von ThreadPoolExeceutor in Java

Der Thread-Pool ist ein Begriff, der sich im Wesentlichen auf den Pool bezieht, der für die Threads erstellt wurde. Der Thread-Pool ist nützlich, da er die Threads wiederverwendet und nur bei Bedarf neue Threads erstellt. Diese Thread-Pools sind auch für die rechtzeitige Ausführung von Aufgaben verantwortlich. Die Aufgaben werden in der Warteschlange gehalten und ausgeführt, wenn ein Thread verfügbar wird. Daher sind sie bei der Ausführung von Aufgaben mit der Zeit effektiv.

In diesem Artikel besprechen wir die isTerminated()-Methode der Thread Pool Executor-Klasse in Java.

Thread Pool Executor isTerminated()-Methode in Java

Der isTerminated() Die Methode der ThreadPool-Executor-Klasse in Java ist dafür verantwortlich, den Wert aller Aufgaben als zurückzugeben WAHR wenn die Shutdown()-Methode ausgeführt wurde. Wenn die Methode „shutdown()“ nicht ausgeführt wurde, gibt die Methode „isTerminated()“ den Wert nicht als „true“ zurück.

Syntax der isTerminated()-Methode

Werfen wir einen Blick auf die Syntax der isTerminated-Methode() der ThreadPool-Executor-Klasse in Java.

Public boolean isTerminated()

Beispiel 1: Implementierung der isTerminated()-Methode

Die Code-Implementierung für die Methode isTerminated() ist unten dargestellt:

//Import concurrent that helps in Multithreading of Java
import java.util.concurrent.*; 
import java.lang.Thread; 
import java.util.*; 
//Create a class
class Terminationprogram { 
    public static void main(String[] args) { 
//cancel tasks occurring initially
                cancel firsttask = new cancel("t1");     
                System.out.println("The threads are starting..");
//newCached reuses previously created threads but creates new ones as needed.
                ThreadPoolExecutor texec = (ThreadPoolExecutor) Executors.newCachedThreadPool();
//To get the maximum pool size
                System.out.println("The Maximum pool size is "+ texec.getMaximumPoolSize()); 
//the count of tasks using the get() method
                System.out.println("Before Execution the task count is:"+ texec.getTaskCount()); 
                texec.submit(firsttask);
//Start task 1
                texec.execute(firsttask); 
//get the results after execution of task 1.
                System.out.println("After Execution the task count is :"+ texec.getTaskCount()); 
//shut down the thread
                texec.shutdown();
                System.out.println("Has the executor ended ? "+ texec.isTerminated()); 
                System.out.println("The threads have started.\nThe main has ended."); 
        } 
} 
//the runnable instance of Java for Threads.
class cancel implements Runnable { 
 
private final String threadName; 
 
  public cancel(String threadName) { 
    this.threadName = threadName; 
  } 
//The only method used by Runnable.
  @Override 
  public void run() { 
      for(int i=5 ; i<=9;i++) 
      { 
          if(i==6) 
          { 
              System.out.println("i=" +i); 
              } 
          } 
           
      } 
}

Im obigen Code,

  • Deklarieren Sie eine Klasse und brechen Sie alle derzeit ausgeführten Aufgaben ab, da neue Threads ausgeführt werden.
  • newCachedThreadPool() erstellt bei Bedarf einen neuen Thread, andernfalls werden die zuvor erstellten Threads wiederverwendet.
  • Die Methode getTaskcount() ermittelt die Anzahl der Aufgaben vor und nach der Ausführung.
  • Die Methode „shutdown()“ wird vor der Methode „isTerminated()“ ausgeführt, da die Beendigung erfolgt, nachdem die Methode „shutdown()“ ausgeführt wurde.
  • Die run()-Methode wurde von der ausführbaren Schnittstelle verwendet.
  • In der run()-Methode wurde ein Codeblock deklariert.

Ausgabe

In der obigen Ausgabe:

  • Der Anfang des Threads wurde angegeben.
  • Die Aufgaben zählen vor und nach der Ankündigung der Ausführung.
  • Der Codeblock unter dem laufen() Die Methode hat die Ausgabe als inkrementierten Wert von 6 ausgegeben.
  • Wenn der Testamentsvollstrecker nicht beendet wurde und der abschalten() Wenn die Methode immer noch nicht abgeschlossen ist, gibt die Methode isTerminated() den booleschen Wert als „false“ aus.
  • Jetzt sind die Threads in der Warteschlange gestartet.

Dies fasst die Umsetzung der zusammen isTerminated() Methode der ThreadPool-Executor-Klasse in Java.

Abschluss

Der ThreadPoolExecutor in Java ist ein Executor-Dienst, der dafür verantwortlich ist, die Aufgaben aus dem Thread-Pool auszuführen oder neue Threads zu erstellen, um die Aufgaben auszuführen. Diese Aufgaben werden ebenfalls beendet, wenn sie abgeschlossen sind. Daher besteht die Notwendigkeit, die isTerminated-Methode() der ThreadPollExecutor-Klasse zu implementieren. Diese Beendigungsmethode funktioniert nur, wenn die Shutdown()-Methode zuvor deklariert wurde. In diesem Artikel wurde die Funktionsweise und Code-Implementierung der Methode isTerminated() ausführlich beschrieben.

Kommentar verfassen

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

Nach oben scrollen