gpt4 book ai didi

独立于所有其他操作的 Java 时钟

转载 作者:行者123 更新时间:2023-11-29 05:46:50 26 4
gpt4 key购买 nike

我正在尝试模拟实时数据流,以测试不断过滤和计算数据点的程序。主要是我需要确保它能满足时间要求。

每 50 毫秒就会有一个新的数据点需要计算。

所以我想创建一个 java 时钟,它独立于当前在 jvm 中运行的内容或系统上发生的任何类似事件。

所以我的问题有两个方面:

首先,System.currentTimeMillis() 不是我想要的,因为它基于打开 jvm 的时间,并且会在系统调用执行时发生。

其次,我如何创建一个持续运行并始终在 50 毫秒标记处准确触发的线程?

最佳答案

Timers 和 TimerTask 有很好的预定义机制(与纯线程相比):

import java.util.Timer;
import java.util.TimerTask;

public class Reminder {
Timer timer;

public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}

class RemindTask extends TimerTask {
public void run() {
System.out.format("Time's up!%n");
timer.cancel(); //Terminate the timer thread
}
}

public static void main(String args[]) {
new Reminder(5);
System.out.format("Task scheduled.%n");
}
}

(取自:http://enos.itcollege.ee/~jpoial/docs/tutorial/essential/threads/timer.html)

此机制允许您每 5 秒在 RemindTask 的 run() 方法中执行您的代码(该值在代码中指定)

关于独立于所有其他操作的 Java 时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com