java方法执行超时关闭

JAVA 方法执行超时处理

java1.5以上的Future类可以执行超时处理。
jdk1.5自带的并发库中Future类中重要方法包括get()和cancel(),get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而 cancel()是取消数据加载。另外一个get(timeout)操作,表示如果在timeout时间内没有取到就失败返回,而不再阻塞。
代码如下:

ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<Boolean> future = executorService.submit(() -> method(param));
try {
    //设置超时时间
    boolean rst = future.get(200, TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
    System.out.println("执行超时!");
} catch(Exception e){
    System.out.println("获取数据异常," + e.getMessage());
}finally {
    executorService.shutdown();
}

你可能感兴趣的:(java基础知识,多线程,java,jvm,开发语言)