在Timer.schedule(TimerTask task, long delay)
中,它表示如果delay
为否定则会抛出,但是如果delay
为零则没有说明。会发生什么?我尝试了openjdk并立即运行。这个行为是在其他地方指定的,还是未定义的(例如,它在其他实现上意味着无限,或者某些实现有时会做无限且有时是无限的)?
答案 0 :(得分:2)
答案 1 :(得分:1)
我相信java中的Timer是一个带有任务队列的线程。项目在任务队列中按其应该触发的顺序排序。延迟为0的任务应该立即触发,从而进入队列的顶部。我相信你所看到的行为是预期的,应该是跨平台和不同的jdks一致