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

时间: 2024-07-31 15:03:50

java方法执行超时关闭的相关文章

Java程序执行超时——Future接口介绍

在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API的一部分,在java.util.concurrent包中.Future接口是Java线程Future模式的实 现,可以来进行异步计算. Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完成这个任务.期间我自己可以去做任何想做的事情.一段时 间之后,我就便可以从Future那儿取出结果.就相当

C# 给某个方法设定执行超时时间 C#函数运行超时则终止执行(任意参数类型及参数个数通用版)

在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死. 在这时.我们可以通过Thread.Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死, 但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的.那么我们又是否有一种比较通用的方法.来设定某一个方法的执行超时的时间,让该其一旦超过指定时间则跳出指定方法.进而继续向下执行呢? 答案当然是肯定的. delegate.BeginInvoke可以实现代

C# 给某个方法设定执行超时时间

在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死. 在这时.我们可以通过Thread.Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死, 但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的.那么我们又是否有一种比较通用的方法.来设定某一个方法的执行超时的时间,让其一旦超过指定时间则跳出指定方法.进而继续向下执行呢? 答案当然是肯定的. delegate.BeginInvoke可以实现代码

判断方法执行是否超时方法

#region 判断方法执行是否超时 /// <summary> /// 判断方法是否超时,适合无参数方法 /// </summary> /// <param name="action">方法名称</param> /// <param name="timeoutMilliseconds">超时时间限定</param> private void CallWithTimeout(Action act

JAVA设计方法思考之如何实现一个方法执行完毕后自动执行下一个方法

今天编程时,突然想起来在一些异步操作或Android原生库的时候,需要我们实现一些方法, 这些方法只需要我们具体实现,然后他们会在适当的时候,自动被调用! 例如AsyncTask,执行玩doInBackground()后会执行处理结果的postResult()方法,但我们并没有设置过他们的执行顺序. 以前只知道他们的运行原理,但不知道具体的实现方法,细想起来,这是一个相当不错的代码设计,所以决定研究一下. 因为一开始是通过实现方法来具体实现那些需要被执行的方法的,所以以为实现的方式是接口, 思索

nginx后端服务器返回给nginx502、504、404、执行超时等错误状态的解决方法

今天公司的网站访问的时候全部变成404页面,查看网站的文件没有问题,来检查nginx的配置的时候,发现后端的一台服务器不可用,直接访问那台后台的服务器的时候,返回的是404页面,因为upstream 里面设置了ip_hash.所以导致我怎么刷新都是404页面.由此想到了nginx的一个功能,就是当后端的服务器返回给nginx502.504.404.执行超时等错误状态的时候,nginx会自动再把这个请求转发到upstream里面别的服务器上面,从而给网站用户提供更稳定的服务. 配置如下:locat

Java远程执行Shell命令

1. Jar包:ganymed-ssh2-build210.jar 2. 步骤: a) 连接: Connection conn = new Connection(ipAddr); conn.connect(); b)认证: boolean authenticateVal = conn.authenticateWithPassword(userName, password); c) 打开一个Session: if(authenticateVal) Session session = conn.op

如何解决MySQL连接超时关闭

最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到MySQL的时候,发现MySQL的连接超时关闭了,于是就出现了"MySQL server has gone away"这样的错误提示,解决这个问题,我的经验有以下两点,或许对大家有用处: 第一种方法: 当然是增加你的 wait-timeout值,这个参数是在my.cnf(在Windows下台

oracle 包,函数,过程,块的创建和执行及在java中执行(转)

SQL> create or replace procedure sp_guocheng1 is--如果有这个名字就替换  2  begin--执行部分  3  insert into guocheng values('liyifeng','liyifeng');  4  end;  5  /  --执行的意思 Procedure created 显示错误SQL> show error;Errors for PROCEDURE LIYIFENG.SP_GUOCHENG1: LINE/COL E