Java 基于计时器的执行

Java 基于计时器的执行,java,timer,Java,Timer,我必须检查一段代码(例如调用第三方web服务)是否在给定的时间段内完成执行。若执行代码的输出并没有在给定的时间内到达,则执行应该中断,并将默认值传递给被调用的对象 如何在java中实现它 任何建议我的意见是你需要两条线 第一个线程执行服务调用,第二个线程应该被安排中断第一个线程 第一个线程: public class ServiceCall implements Runnable { public void run() { serviceClient.callOperat

我必须检查一段代码(例如调用第三方web服务)是否在给定的时间段内完成执行。若执行代码的输出并没有在给定的时间内到达,则执行应该中断,并将默认值传递给被调用的对象

如何在java中实现它


任何建议

我的意见是你需要两条线

第一个线程执行服务调用,第二个线程应该被安排中断第一个线程

第一个线程:

public class ServiceCall implements Runnable {

    public void run() {
       serviceClient.callOperation();
    }

}
第二个线程:

public class Interruptor implements Runnable {


public Interruptor(Future<?> future) {
serviceCallFuture = future;
}


private Future<?> serviceCallFuture;

public void run() {
serviceCallFuture.cancel(false);
}


}
现在主要的逻辑是:

ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
Future<?> future = executor.submit(new ServiceCall());
// Schedule interruptor to cancel the thread after 10 seconds
executor.schedule(new Interruptor(future), 10, TimeUnit.SECONDS);