我正在将一些Javascript代码翻译成Java,并需要知道如何在Java中进行超时处理。以下内容应该如何翻译成Java?
var x = setTimeout(function(){ ... }, 2000);
clearTimeout(x);
我正在将一些Javascript代码翻译成Java,并需要知道如何在Java中进行超时处理。以下内容应该如何翻译成Java?
var x = setTimeout(function(){ ... }, 2000);
clearTimeout(x);
尝试使用java.util.Timer
您可以在指定时间结束时或周期性间隔内安排任务。 使用
myTimer.schedule(tt, 2000);
其中tt是来自java.util.TimerTask的TimerTask对象(您必须实现run()方法,该方法将对应于javascript中的“function(){ ... }”)。
clearTimeout()
类似的取消方式? - Billy Moon创建并启动一个新的Thread
。如果您需要执行延迟,可以使用sleep()
无论如何,它基本上是不同的,在JS中你没有一个“主线程”(JS是由浏览器线程运行的),而在Java中你有它。因此,如果你想要在指定的时间分别调用一个函数,你只需创建一个线程,在这个线程中使用睡眠和逻辑(并将线程标记为守护进程)。
wait
会冻结 GUI)或者在一个辅助线程中,情况也是不同的。当然还有你执行这个操作的次数。同时,不同的操作系统 / 虚拟机实现可能意味着创建线程会产生不同的代价。 - SJuan76Thread.sleep(2000);
。但是,这取决于您的需求,您想要对Java代码做什么。此外,您还可以像这样使用public interface Lock
: Lock lock = ...;
if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...