Java设置一段代码执行的超时时间

最近在项目中,需要调用其他APP提供的AIDL接口,项目要求必须执行完该操作,才能执行后续的程序,所以必须设置代码执行的超时时间,找到如下代码可以满足需求:

public class ThreadTest {
    public static void main(String[] args) throws InterruptedException,
            ExecutionException {
          
        final ExecutorService exec = Executors.newFixedThreadPool(1);
          
        Callable<String> call = new Callable<String>() {
            public String call() throws Exception {  
                //开始执行耗时操作  
                Thread.sleep(1000 * 2);
                return "线程执行完成.";  
            }  
        };  
          
        try {  
            Future<String> future = exec.submit(call);
            String obj = future.get(1000 * 1, TimeUnit.MILLISECONDS); //任务处理超时时间设为 1 秒
            System.out.println("任务成功返回:" + obj);  
        } catch (TimeoutException ex) {  
            System.out.println("处理超时啦....");  
            ex.printStackTrace();  
        } catch (Exception e) {  
            System.out.println("处理失败.");  
            e.printStackTrace();  
        }  
        // 关闭线程池  
        exec.shutdown();  
    }  
}  
建议阅读

Java多线程:Executor,Executors,Future,Callable,Runnable等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一.线程安全性 线程安全是建立在对于对象状态访问操作进行管理,特别是对共享的与可变的状态的访问 解释下上面的话: ...
    黄大大吃不胖阅读 978评论 0 3
  • 先看几个概念:线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。多线程:解决多任务同时执行的需求,合理...
    yeying12321阅读 620评论 0 0
  • 一、并发 进程:每个进程都拥有自己的一套变量 线程:线程之间共享数据 1.线程 Java中为多线程任务提供了很多的...
    SeanMa阅读 2,844评论 0 11
  • 第一种情况: 打包一个界面的Prefab,界面包含了一张大图和四个按钮图片,图片没有打成图集仅对界面设置Asset...
    流沙满地阅读 672评论 0 0
  • 市面上的处方减肥药都有减肥功效,研究表明这其中有些相对效果更好些。最近美国新批准了五种减肥药,但是功效相比其他减肥...
    许远山阅读 1,128评论 0 0

友情链接更多精彩内容