java Timer.schedule 在 Windows 系统上工作不正确

java Timer.schedule work incorrectly on Windows system

我在 java 中创建了一个打字游戏项目。我使用 java.util.Timer.schedule 设置一个定时器来重绘我的 window。代码在这里:

timer.schedule(new TimerTask() {
    @Override
    public void run() {
        // Some other codes ...
        repaint();
    }
}, 0, 1000 / HZ);

HZ 是 200,代码在 Ubuntu 上运行良好,但是当我在 Windows 上 运行 时,它明显比在 Ubuntu 上慢,我很困惑那。

对应于每个 Timer 对象的是一个单独的后台线程,用于按顺序执行所有计时器的任务。计时器任务应该很快完成。如果计时器任务需要过多的时间才能完成,它 "hogs" 计时器的任务执行线程。这反过来又会延迟后续任务的执行,这些任务可能 "bunch up" 并在(如果)违规任务最终完成时快速连续执行。

参考:https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html