想要在一个时间限制内的线程中调用一个Web服务来在java中执行

时间:2013-01-22 14:49:49

标签: java multithreading

任何代码示例

想要在一个线程中调用一个Web服务,并且需要设置一个时间限制来执行该线程 并且需要返回值成功和失败的ID  喜欢t.start();和t.stop();在时间内

2 个答案:

答案 0 :(得分:2)

Future<T> result = Executors.newSingleThreadScheduledExecutor().submit(
    new Callable<T>() {
        @Override
        public void run() {
            //perform action here
            while(!Thread.interrupted()){
                //do next stage of calculation
            }
        }
    });
T value = result.get(10, TimeUnit.SECONDS); //for example wait 10 seconds
if(value == null) {
    //process is not finished
    result.cancel(true);    //interrupt task
}

答案 1 :(得分:1)

Web服务调用是原子操作,除非设计为这样,否则它不会返回部分结果。例如,接收请求并开始处理的Web服务,以及第二个服务调用中断操作并请求部分结果。