1ms Java定时器延迟太快了吗?

Bri*_*nan 4 java timer

Timer timer = new Timer(true);
timer.scheduleAtFixedRate(timerTask, 0, 1);  // 1 = 1ms delay between each iteration
Run Code Online (Sandbox Code Playgroud)

每次触发它都会运行一个超快速操作,它基本上不需要时间:基本上它需要当前毫秒经过的值,并在以毫秒为关键的Map中快速查找时递增它.

你认为1ms的延迟会太快吗?这是否会使系统陷入困境?尝试使用这款超级快速计时器有危险吗?

Jim*_*mes 5

也许.在当代计算机上,很多事情都可以在毫秒内发生,因此它取决于很多事情.您可能应该找出可接受的最慢速率,然后选择1和该数字之间的合理值.这将每天执行更多约86,400,000次.这对你想要完成的事情有意义吗?

编辑:作为对问题说明的一些评论,如果您假设计时器将始终以您提供的速率执行,则此方法可能存在根本缺陷.无论速率如何,你都无法做出这种假设.这很难分辨,因为细节很少,但我觉得你应该考虑使用队列而不是Map.