控制一段程序的执行时间

6 篇文章 0 订阅
5 篇文章 0 订阅

控制一段程序的执行时间

注:限定一段代码执行的时间,超时自动结束线程

 

final ExecutorService exec = Executors.newFixedThreadPool(1);

//限定执行时间处理
        Callable<String> call2 = new Callable<String>() { 
            public String call() throws Exception { 
                //开始执行耗时操作  。。。。。。

                //........................

 

               return "线程执行完成."; 
            } 
        }; 
       
        try { 
            Future<String> future = exec.submit(call2); 
            String obj = future.get(4*60*60, TimeUnit.SECONDS); //任务处理超时时间设为 4*60*60 秒 
            System.out.println(DateUtil.getTimestamp());
            System.out.println("任务成功返回:" + obj);
            log.info(DateUtil.getCurrentTime()+" 数据在规定的时间(4小时)内同步完成!");
        } catch (TimeoutException ex) { 
            System.out.println(DateUtil.getTimestamp());
            System.out.println("处理超时啦...."); 
            log.error(DateUtil.getCurrentTime()+" (同步超时):"+ex.getMessage());
            System.out.println(DateUtil.getTimestamp());
            ex.printStackTrace(); 
        } catch (Exception e) { 
            System.out.println("处理失败.");
            e.printStackTrace(); 
        } 
        // 关闭线程池         //最后关闭
       exec.shutdown(); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值