2013-01-22 29 views

回答

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

Web服務調用是原子操作,它不會返回部分結果,除非它被設計爲這樣做。例如,接受請求並開始處理的Web服務,以及第二次服務調用會中斷操作並請求部分結果。

相關問題