首頁 > Java > java教程 > 如何建立超時後中斷任務的ExecutorService?

如何建立超時後中斷任務的ExecutorService?

Patricia Arquette
發布: 2024-11-28 04:25:13
原創
369 人瀏覽過

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

超時執行器服務

概述

在這種情況下,我們對能夠中斷超過預定義超時的任務的ExecutorService 實作感興趣。

現有實作

其中一個實作是TimeoutThreadPoolExecutor,提供了為提交的任務指定超時時長的機制。

實作細節

<br>import java.util.List;<br>導入 java.util.concurrent.*;<p>公共類別TimeoutreadThreadThoolExecutor ext {</p><pre class="brush:php;toolbar:false">private final long timeout;
private final TimeUnit timeoutUnit;

// ... (rest of the implementation)
登入後複製

}

用法

要使用此執行器服務,只需建立一個實例,指定所需的timeout:

TimeoutThreadPoolExecutor executor = new TimeoutThreadPoolExecutor(..., timeout, TimeUnit.MILLISECONDS);
登入後複製

然後,照常將你的任務提交給執行者。超過指定超時的任務將會中斷。

替代方法

或者,您可以使用 ScheduledExecutorService:

ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
Future<?> handler = executor.submit(new Callable() { /* ... */ });
executor.schedule(() -> handler.cancel(true), 10000, TimeUnit.MILLISECONDS);
登入後複製

此策略確保任務在之後中斷10 秒。

以上是如何建立超時後中斷任務的ExecutorService?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板