Heim > Java > javaLernprogramm > Wie kann ich einen ExecutorService erstellen, der Aufgaben nach einer Zeitüberschreitung unterbricht?

Wie kann ich einen ExecutorService erstellen, der Aufgaben nach einer Zeitüberschreitung unterbricht?

Patricia Arquette
Freigeben: 2024-11-28 04:25:13
Original
441 Leute haben es durchsucht

How Can I Create an ExecutorService That Interrupts Tasks After a Timeout?

Timeout Executor Service

Übersicht

In diesem Zusammenhang sind wir an einer ExecutorService-Implementierung interessiert, die in der Lage ist, Aufgaben zu unterbrechen, die einen vordefinierten Timeout überschreiten.

Bestehende Implementierungen

Eine solche Implementierung ist TimeoutThreadPoolExecutor, der einen Mechanismus zum Festlegen einer Timeout-Dauer für übermittelte Aufgaben bereitstellt.

Implementierungsdetails

<br>import java.util.List;<br>import java.util.concurrent.*;</p>
<p>öffentliche Klasse TimeoutThreadPoolExecutor erweitert ThreadPoolExecutor {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">private final long timeout;
private final TimeUnit timeoutUnit;

// ... (rest of the implementation)
Nach dem Login kopieren

}

Verwendung

Um diesen Executor-Dienst zu nutzen, erstellen Sie einfach eine Instanz und geben Sie das gewünschte Timeout an :

TimeoutThreadPoolExecutor executor = new TimeoutThreadPoolExecutor(..., timeout, TimeUnit.MILLISECONDS);
Nach dem Login kopieren

Dann übermitteln Sie Ihre Aufgaben an den Testamentsvollstrecker als üblich. Aufgaben, die das angegebene Timeout überschreiten, werden unterbrochen.

Alternativer Ansatz

Alternativ können Sie einen ScheduledExecutorService verwenden:

ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
Future<?> handler = executor.submit(new Callable() { /* ... */ });
executor.schedule(() -> handler.cancel(true), 10000, TimeUnit.MILLISECONDS);
Nach dem Login kopieren

Diese Strategie stellt sicher, dass die Aufgabe danach unterbrochen wird 10 Sekunden.

Das obige ist der detaillierte Inhalt vonWie kann ich einen ExecutorService erstellen, der Aufgaben nach einer Zeitüberschreitung unterbricht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage