当我的应用程序处于物理模拟的中间时,我希望它以恒定的FPS(例如30)运行,因为这会以某种方式影响物理。但是,计算结束当前“帧”并调用Thread.sleep(1000 / FPS - 已经花费的时间)所花费的时间是一个坏主意,因为OS调度可能会在FPS中产生相当高的错误/不准确性。 另一个糟糕的想法是让模拟完全不睡觉,而只是在(!time_has_come)time + = System.nanotime()时运行,因为它会浪费CPU资源和电池。是否有更准确,而且资源不昂贵的方式来创建计时器 这将在恒定的FPS中为我的模拟提供脉冲?
答案 0 :(得分:0)
我不确定它有多准确,但scheduleAtFixedRate
类的Timer
方法应该做你需要的。