Java的Timer任务是否保证不会同时运行?

rip*_*234 5 java concurrency timer

new Timer(...).schedule(task)
Run Code Online (Sandbox Code Playgroud)

task保证被由单个线程在任何时候运行?

Thi*_*ilo 8

来自Javadoc

对应于每个Timer对象的是一个后台线程,用于按顺序执行所有计时器的任务.计时器任务应该快速完成.如果计时器任务花费过多时间来完成,它会"占用"计时器的任务执行线程.反过来,这可以延迟后续任务的执行,后续任务可以在紧急任务最终完成时(以及如果)快速连续地"聚集"并执行.

所以,是的,你得到一个新的线程(与调用者的线程分开).该计时器中的每个任务共享同一个线程.