溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Java ExecutorService實現任務超時控制

發布時間:2025-03-22 13:38:52 來源:億速云 閱讀:121 作者:小樊 欄目:編程語言

在Java中,你可以使用ExecutorService結合FutureCallable來實現任務的超時控制。以下是一個簡單的示例:

  1. 首先,導入所需的包:
import java.util.concurrent.*;
  1. 創建一個實現了Callable接口的任務類:
class MyTask implements Callable<String> {
    @Override
    public String call() throws Exception {
        // 模擬一個耗時任務
        Thread.sleep(5000);
        return "任務完成";
    }
}
  1. 使用ExecutorService提交任務并獲取Future對象:
public class TimeoutControl {
    public static void main(String[] args) {
        // 創建一個固定大小的線程池
        ExecutorService executorService = Executors.newFixedThreadPool(1);

        // 提交任務并獲取Future對象
        Future<String> future = executorService.submit(new MyTask());

        try {
            // 設置超時時間
            String result = future.get(3, TimeUnit.SECONDS);
            System.out.println(result);
        } catch (InterruptedException e) {
            System.out.println("任務被中斷");
            e.printStackTrace();
        } catch (ExecutionException e) {
            System.out.println("任務執行異常");
            e.printStackTrace();
        } catch (TimeoutException e) {
            System.out.println("任務超時");
            e.printStackTrace();
        } finally {
            // 關閉線程池
            executorService.shutdown();
        }
    }
}

在這個示例中,我們創建了一個固定大小的線程池,并提交了一個實現了Callable接口的任務。然后,我們使用future.get()方法設置超時時間。如果在指定的時間內任務沒有完成,將拋出TimeoutException異常。最后,我們關閉線程池。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女