java程序設置時間限制

        程序裏訪問webservice,但是在開發環境下訪問不到webservice的地址,webservice客戶端程序程序就堵塞挺長的時間(大約5分鐘)。在調用webservice處加上超時時間限制,超過設定的時間就往外拋出異常。

import java.util.concurrent.*;
public class Class01 {
    public static void main(String[] args) {
        try {
            ExecutorService poll = Executors.newFixedThreadPool(1);
            //<String> 表示耗時計算的返回值類型
            Future<String> future = poll.submit(new Callable<String>() {
                @Override  //call的返回值根據上面的泛型類型而定
                public String call() throws Exception {  //call方法裏是耗時操作,比如webservice請求,服務端訪問不到
                    return "耗時操作返回結果";
                }
            });
            //10秒超時  //future.get 可以取到耗時操作的返回值,如果耗時操作沒處理完,future.get方法會在此阻塞
            String result = future.get(10, TimeUnit.SECONDS);
            poll.shutdown();  //如果不shutdown,main方法執行完,程序不停止
            System.out.println(result);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }
    }
}

    謹慎使用 這種用法

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章