每秒向某个变量添加 1

Adding 1 every second to a certain variable

本文关键字:变量 添加      更新时间:2023-09-26

我只想在程序运行时每秒向某个变量添加1

所以基本上它每秒执行类似 x++ 的东西。

我看到很多设置间隔,但他们使用不起作用的变量。

我是Java的新手,所以请耐心等待。

在运行 x++ 之前,请在循环中尝试 sleep 命令。 sleep 命令以毫秒为单位,因此您将拥有类似于以下伪代码的内容:

LoopWithConditional{
sleep(60000);

}

首先,您需要一种线程安全的方式来增加 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()

我鼓励你阅读这里各种类/方法的javadocs,因为有很多多汁的东西(比如守护进程线程是什么,等等)。

你可以使用 JavaScript date 对象,如下所示:

//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