java 方法请求超时判断
时间: 2024-09-26 19:09:17 浏览: 32
JAVA 发送http请求工具类
在 Java 中,当调用某个方法可能需要花费较长时间运行而你需要设置一个超时限制时,可以使用 `java.util.concurrent.Future` 和 `ExecutorService` 这一对工具。首先,你可以创建一个 `Callable` 或者 `Runnable` 对象并提交给 `ExecutorService` 执行。然后,你可以通过创建一个 `Future` 对象来跟踪任务的完成情况。
例如:
```java
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<?> future = executor.submit(task); // task 是 Callable 或 Runnable
try {
future.get(5, TimeUnit.SECONDS); // 设置超时时长为5秒
} catch (TimeoutException e) {
System.out.println("任务超时");
future.cancel(true); // 取消未完成的任务
} catch (ExecutionException | InterruptedException ex) {
ex.printStackTrace();
}
executor.shutdown(); // 关闭线程池
```
在这个例子中,`future.get()` 方法会阻塞直到任务完成或达到指定的超时时间。如果超过设定的时间还未完成,就会抛出 `TimeoutException`,可以根据这个异常进行处理。
阅读全文