问答详情
源自:4-1 Timer的缺陷

为什么在使用schedule和scheduleAtFixedRate时,控制台结果输出顺序不同

想请问老师一下,在timer缺陷这里,使用schedule和scheduleAtFixedRate时,控制台输出这么大呢?相当于代码的执行顺序都不一样了

http://img4.mukewang.com/5dd95f910001fb6111380587.jpghttp://img3.mukewang.com/5dd95faf0001ba3a10970664.jpg

提问者:三棵树之后 2019-11-24 00:35

个回答

  • 新的纪元
    2020-03-12 21:33:44

    schedule执行task时,错过了这次task,只会去等待下一次task不会补回来,而scheduleAtFixedRate,却会去补充

  • 新的纪元
    2020-03-12 21:08:45

    Timer缺陷讲的就是一个Timer永远只有一个定时任务线程,无论他执行多少个timerTask。main函数所在线程执行完毕,那么只存在定时任务线程,他会线性的去执行两个timertask。由于你这里设置的执行时间相同,导致两个task抢线程,所以谁抢到了就执行谁的。