Was ist die ScheduledExecutorService-Schnittstelle in Java?

In Java gibt es bestimmte Situationen, in denen es erforderlich ist, Intervalle entsprechend den Anforderungen zu platzieren. Beispielsweise die regelmäßige Ausführung der Funktionen, basierend auf dem festgelegten Intervall und der Häufigkeit der Ausführung. In solchen Situationen ist die „ScheduledExecutorServiceEs kommt eine Schnittstelle in Java zum Einsatz, die diese Art von Funktionalitäten auf optimierte Weise ausführt.

In diesem Artikel wird die Java-Schnittstelle „ScheduledExecutorService“ näher erläutert.

Was ist die ScheduledExecutorService-Schnittstelle in Java?

Der „ScheduledExecutorServiceDie „Schnittstelle“ in Java ist eine Unterschnittstelle der „ExecutorService“-Schnittstelle, die in der „java.util.concurrent“ Paket. Diese Schnittstelle wird verwendet, um die gegebenen Aufgaben periodisch oder einmalig nach einer bestimmten Verzögerung auszuführen.

Da „ScheduledExecutorService“ eine Schnittstelle ist, kann sie nicht instanziiert werden. Aber die „TestamentsvollstreckerDie Klasse „java.util.concurrent“ stellt die Klasse „java.util.concurrent“ bereit.newScheduledThreadPool()”-Methode, die das Objekt „ScheduledExecutorService“ zurückgibt, das seinen implementierenden Klassen entspricht.

„ScheduledExecutorService“-Methoden

MethodeFunktionalität
Zeitplan​(Callable Callable, lange Verzögerung, TimeUnit-Einheit)Es führt ein ScheduledFuture aus, das nach der angegebenen Verzögerung aktiviert wird.
Zeitplan(Lauffähig Befehl, lange Zeit, TimeUnit-Einheit)Es führt die gewünschte Aktion aus, die nach der angegebenen Zeit/Verzögerung aktiviert wird.
ScheduleAtFixedRate​(Lauffähig Befehl, lange Startverzögerung, lange Zeitspanne, TimeUnit-Einheit)Diese Methode führt eine periodische Aktion aus, die zunächst nach der angegebenen Startverzögerung und anschließend mit der angegebenen Zeit, d. h. dem angegebenen Zeitraum, aktiviert wird. Es ist so, dass die Ausführungen nach initialDelay, dann initialDelay+time, dann initialDelay + 2 * time usw. initiiert werden.
ScheduleWithFixedDelay​(Lauffähig Befehl, lange Startverzögerung, lange Verzögerung, TimeUnit-Einheit)Es übermittelt eine periodische Aktion, die zunächst nach der angegebenen startDelay und anschließend mit der angegebenen Verzögerung zwischen dem Abbruch einer Ausführung und dem Beginn der nächsten aktiviert wird.

Importieren Sie das unten angegebene Paket im Beispiel, um den Zugriff auf alle Funktionen im „java.util.concurrent“ Paket:

import java.util.concurrent.*;

Beispiel 1: Nutzung der Schnittstelle „ScheduledExecutorService“ und ihrer Methoden in Java

Dieses Beispiel erläutert die Verwendung der besprochenen Schnittstelle in einer Thread-basierten Umgebung:

import java.util.concurrent.*;public class ExecutorService {
public static void main(final String[] arguments) throws InterruptedException {
  final ScheduledExecutorService x = Executors.newScheduledThreadPool(2);
  final ScheduledFuture<?> y = x.scheduleAtFixedRate(new Beeping(), 2, 2,   TimeUnit.SECONDS);
  x.schedule(new Runnable() {
  public void run() {
    y.cancel(true);
    x.shutdown();
}}, 5, TimeUnit.SECONDS);
}
static class Beeping implements Runnable {
public void run() {
  System.out.println("Tic Toc");
}
}}

Gemäß dem obigen Codeblock:

  • Importieren Sie zunächst das unten angegebene Paket im Beispiel, um den Zugriff auf alle Funktionen im „java.util.concurrent“ Paket:
  • Erstellen Sie ein „ScheduledExecutorService“-Objekt mit der angegebenen Poolgröße, die die Anzahl der aktiven Threads angibt.
  • Wenden Sie danach das „ScheduleAtFixedRate()”-Methode zum Ausführen einer periodischen Aktion, die zuerst nach der angegebenen Anfangsverzögerung und anschließend mit dem angegebenen Zeitraum aktiviert wird. Es ist so, dass die Ausführungen nach initialDelay, dann initialDelay+period und dann initialDelay + 2 * period usw. beginnen.
  • Wenden Sie außerdem das „Zeitplan()”-Methode, die angibt, wie oft die Nachricht „Tic Toc“ nach der spezifischen Verzögerung ausgeführt wird.

Ausgabe

Wie Sie sehen, wird die angegebene Meldung nach der eingestellten Zeit und der angegebenen Häufigkeit angezeigt.

Beispiel 2: Anwenden der Methode „scheduleWithFixedDelay()“.

Diese Demonstration veranschaulicht die Implementierung der Methode „scheduleWithFixedDelay()“:

import java.util.concurrent.*;
import java.util.*;
public class ScheduledExecutor {
public static void main(String[] args) {
  ScheduledExecutorService x = Executors.newScheduledThreadPool(1);
  ScheduledFuture y = x.scheduleWithFixedDelay(new displayTime(), 3, 2,   TimeUnit.SECONDS);
  x.schedule(new Runnable() {
  public void run() {
  y.cancel(true);
  x.shutdown();
  System.out.println("Logging off...");
}}, 10, TimeUnit.SECONDS);
}}
class displayTime implements Runnable {
  public void run() {
  System.out.println(new Date());
}}

Importieren Sie in diesem Code das zusätzliche „java.util.*”-Paket, um auf alle Funktionen im Paket „java.util“ zuzugreifen. Danach wird die gleiche Demonstration durchgeführt. Der Unterschied besteht darin, dass „ScheduleWithFixedDelay()Die Methode wird ausgeführt, bis sie die Methode „aufruft“.stornieren()”-Methode, die die Aufgabe abbricht. Außerdem wird in diesem Code das Datum mit den Intervallen stattdessen über das Schlüsselwort „new“ und den Konstruktor „Date()“ angezeigt.

Ausgabe

Abschluss

Das Java“ScheduledExecutorServiceDie Schnittstelle „entspricht einer Unterschnittstelle von „ExecutorService“, um die bereitgestellten Aufgaben regelmäßig oder einmal nach einer bestimmten Verzögerung auszuführen. In diesem Leitfaden drehte sich alles um die Java-Schnittstelle „ScheduledExecutorService“.

Kommentar verfassen

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

Nach oben scrollen