zoukankan      html  css  js  c++  java
  • 利用FutureTask进行超时设置方法

    public class Test {
     
    public static void main(String[] args) {
    ExecutorService executor = Executors.newSingleThreadExecutor();
    FutureTask future = new FutureTask(new Callable() {
     
    public URLConnection call() throws Exception {
    // TODO Auto-generated method stub
    //真正的任务在这里执行,这里返回类型为string,可以为任意类型的数据
    URL realUrl = new URL("http://www.baidu.com");
    //打开和url之间的链接
    URLConnection connection = realUrl.openConnection();
    connection.connect();
    return connection;
    }
    });
    executor.execute(future);
    try{
    URLConnection result = future.get(5000, TimeUnit.MILLISECONDS);
    System.out.println(result.getURL());
    }catch(InterruptedException  e){
    future.cancel(true);    //取消任务
    System.out.print("提前中断");
    }catch(ExecutionException  e){
    future.cancel(true);    //取消任务
    System.out.print("任务奔溃");
    }catch (TimeoutException  e) {
    // TODO: handle exception
    future.cancel(true);    //取消任务
    System.out.print("超时异常");
    }finally {
    executor.shutdown();
    }
    }
    }
  • 相关阅读:
    0x00 Java 研习录
    0x00 Linux From Scratch 实战
    第一章:Java编程入门
    陈洋总结
    pthread_detach
    explicit用法
    Java动态加载DLL方法
    ToolHelp32 函数
    android根据子view里面的数量自动排版的一个ViewGroup
    安装CocoaPods学习
  • 原文地址:https://www.cnblogs.com/yuyu666/p/10069759.html
Copyright © 2011-2022 走看看