我只想在程序运行时每秒向某个变量添加1
。
所以基本上它每秒都会执行类似x ++的操作。
我看到很多setIntervals,但他们使用的var不起作用。
我是Java的新手,所以请耐心等待。
答案 0 :(得分:0)
在运行x ++之前,先在循环中尝试sleep命令。 sleep命令以毫秒为单位,因此您将拥有类似以下伪代码的内容:
LoopWithConditional{
sleep(60000);
}
答案 1 :(得分:0)
首先,您需要一种线程安全的方法来增加int。最好的方法是使用java.util.concurrent.atomic.AtomicInteger
。
然后,您需要一些定时任务来每秒增加AtomicInteger
。为此,您可以使用Timer.schedule
。
private final AtomicInteger myInt = new AtomicInteger(0); // start at 0
public void startIncrementing() {
TimerTask task = new TimerTask() {
@Override
public void run() {
myInt.incrementAndGet();
}
}
Timer timer = new Timer(true); // you probably want a daemon thread here
timer.schedule(task, 0, 1000); // start right away, repeat every 1000 ms
}
如果您希望能够停止增量,则需要将timer
保存到实例变量中,以便在想要停止增量时可以在其上调用timer.cancel()
。 / p>
我建议您在这里阅读各种类/方法的javadoc,因为有很多多余的东西(例如守护程序线程等)。
答案 2 :(得分:0)
您可以按如下方式使用JavaScript日期对象:
//At the beginning of your app
var d = new Date();
var startSeconds = d.getTime()/1000
//Whenever you need the incremental variable by one every second
x = (d.getTime()/1000) - startSeconds