谁能告诉我这里为啥打印这么多次
43秒启动的scheduler,每秒执行一次;
2秒后scheduler被关闭,也就是说任务被触发的时间为:
43秒,
44秒,
45秒,
那么由于单个job中存在一个sleep(5s)的线程,那么job中打印时间应该为:
48秒,
49秒,
50秒,
观察结果却是:
49秒,
49秒,
50秒,
说明在43秒触发的任务,假设是43.999秒触发的,理论上应该在48.999秒打印job中的时间,但是由于每行程序执行都需要时间,假设为1ms,就导致第一次触发的任务在打印时间的时候已经到了49秒。
自己在执行程序的时候把毫秒单位也打出来就容易理解了。
同时可能quartz自己的执行机制,会把时间相近,比如相差五毫秒以内(推测)的两条任务同时执行,也就是说在同一毫秒精度执行。
因为线程睡眠了2秒,它会把睡眠的的这2秒需要执行的代码都补上
設置的是每秒打印一次,但是為啥會重複一次49秒就不知道了