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