在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()
來關閉線程池。這樣可以避免單個任務的超時影響到其他并發任務的執行。