java方法执行超时关闭

  1. Callable<String> task = new Callable<String>() {
  2.             @Override
  3.             public String call() throws Exception{
  4.                 //执行耗时代码
  5.                 Thread.sleep(10000);
  6.                 return "success";
  7.             }
  8.         };
  9.         ExecutorService executorService = Executors.newSingleThreadExecutor();
  10.         Future<String> future = executorService.submit(task);
  11.         try {
  12.             //设置超时时间
  13.             String rst = future.get(5,TimeUnit.SECONDS);
  14.             System.out.println(rst);
  15.         } catch (TimeoutException e) {
  16.             System.out.println("执行超时");
  17.         } catch(Exception e){
  18.             System.out.println("获取数据异常," + e.getMessage());
  19.         }finally {
  20.             executorService.shutdown();
  21.         }
原文地址:https://www.cnblogs.com/min-yu/p/10927535.html