gpt4 book ai didi

java - 如何按时间中断方法执行?

转载 作者:行者123 更新时间:2023-11-29 08:13:23 25 4
gpt4 key购买 nike

假设方法 A 正在调用方法 B。方法 A 是否可以控制方法 B 的执行时间并在假设 60 秒内中断它(例如,方法 B 可以挂起)?

最佳答案

您可以使用 ExecutorService 异步运行任务,获取一个 Future,使您能够在任务完成时获得任务的结果。在 Future 上有一个 get 方法,您可以调用它来等待答案,并设置超时。如果超时,您尝试通过调用 Future 上的 cancel 来取消任务。

ExecutorService executorService = Executors.newSingleThreadExecutor();

// Callable that has a run() method that executes the task
Callable<String> callable = ...;

// Submit the task for execution
Future<String> future = executorService.submit(callable);

try {
String result = future.get(30, TimeUnit.SECONDS);
System.out.println("Result: " + result);
}
catch (TimeoutException e) {
System.out.println("Timeout");
future.cancel(true);
}

并发 API 还有很多内容,请参阅包 java.util.concurrent

关于java - 如何按时间中断方法执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6460664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com