在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()
来关闭线程池。这样可以避免单个任务的超时影响到其他并发任务的执行。