我在java中创建了一个打字游戏的项目。我使用java.util.Timer.schedule
设置一个Timer重绘我的窗口。代码在这里:
timer.schedule(new TimerTask() {
@Override
public void run() {
// Some other codes ...
repaint();
}
}, 0, 1000 / HZ);
HZ是200,代码在Ubuntu上工作得很好但是当我在Windows上运行时,它显然比在Ubuntu上慢,我对此感到困惑。
答案 0 :(得分:0)
对应每个Timer对象是一个后台线程,用于按顺序执行所有计时器的任务。计时器任务应该快速完成。如果计时器任务花费过多时间来完成,它会“占用”计时器的任务执行线程。反过来,这可以延迟后续任务的执行,这些后续任务可能会在违规任务最终完成时(以及如果)快速连续地“聚集”并执行。
参考:https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html