如何在java中为特定方法添加计时器?
我想执行一个包含服务调用的特定方法。因为它包含一个服务调用,所以需要一些时间来执行。我想添加一个计时器,它将保持程序等待,直到该方法完成其执行。对此有何解决办法?您可以使用单独的线程调用该服务,并使用thread类的如何在java中为特定方法添加计时器?,java,gwt,Java,Gwt,我想执行一个包含服务调用的特定方法。因为它包含一个服务调用,所以需要一些时间来执行。我想添加一个计时器,它将保持程序等待,直到该方法完成其执行。对此有何解决办法?您可以使用单独的线程调用该服务,并使用thread类的join()方法,强制主程序等待该线程完成执行。您可以使用java.util.concurrent包组织一个具有超时的异步方法执行 ExecutorService executorService = ... Object res = executorService.s
join()
方法,强制主程序等待该线程完成执行。您可以使用java.util.concurrent
包组织一个具有超时的异步方法执行
ExecutorService executorService = ...
Object res = executorService.submit(new Callable<Object>() {
public Object call() throws Exception {
... your logic
}
}).get(timeout, TimeUnit.MILLISECONDS);
执行器服务执行器服务=。。。
Object res=executorService.submit(new Callable()){
公共对象调用()引发异常{
…你的逻辑
}
}).get(超时,时间单位为毫秒);
调度程序 Scheduler.get().ScheduledDeferred(新的Scheduler.ScheduledCommand()){ @凌驾 public void execute(){ //代码在这里
}可以指定
.submit()
实际返回一个未来
,并且有一个.get()
没有超时,我正在尝试此解决方案,甚至这些类(ExecutorService、futute等)不允许在GWT的客户端使用。客户端对类的使用有限制。这会产生错误-没有可用于java.net.URL类型的源代码;您是否忘记继承所需的模块?从1.5开始,ExecutorService和其他都是标准JRE的一部分,“让程序等待”是什么意思?如果计时器过期会发生什么?进一步的程序执行取决于服务调用的结果。因此,我想在进一步执行之前等待该结果。那么,为什么要设置计时器?如果调用时间太长怎么办?同意。那么有什么其他解决方法吗?接受的答案将在超时的情况下对您有效。如果您不想超时,只需调用.get()
。有关更多信息,请查看Future
和FutureTask
的javadoc。我想在gwt中使用客户端类有一些限制,线程类就是其中之一(如果我没有错的话)。它给出错误-没有可用于java.net.URL类型的源代码;是否忘记继承所需的模块?。