溫馨提示×

Java timeout怎樣避免影響并發

小樊
101
2024-07-20 09:30:42
欄目: 編程語言

在Java中,可以通過使用ExecutorService來管理多個并發任務,并設置超時時間來避免影響并發。以下是一個示例代碼:

ExecutorService executor = Executors.newFixedThreadPool(10); // 創建一個固定大小的線程池

Future<String> future = executor.submit(() -> {
    // 執行需要超時控制的任務
    Thread.sleep(5000); // 模擬耗時操作
    return "Task completed";
});

try {
    String result = future.get(3, TimeUnit.SECONDS); // 設置超時時間為3秒
    System.out.println(result);
} catch (TimeoutException e) {
    System.out.println("Task timeout");
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}

executor.shutdown();

在上面的示例中,我們使用ExecutorService創建一個固定大小的線程池,并提交一個需要超時控制的任務。通過調用future.get(timeout, unit)方法可以設置任務的超時時間,如果任務在超時時間內未完成,則會拋出TimeoutException異常。最后,記得調用executor.shutdown()來關閉線程池。這樣可以避免單個任務的超時影響到其他并發任務的執行。

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