Java中的Timer vs Thread原语

时间:2009-05-15 06:55:22

标签: java multithreading timer

有没有人观察到创建一个在Thread.sleep(t)的while(true)循环中工作的线程似乎比在Java中唤醒t时在Java中创建一个Timer消耗更多的CPU?有JVM专业知识的人知道这是为什么吗?我只在Windows和Linux x86上尝试过这个。

1 个答案:

答案 0 :(得分:1)

根据Javadoc for the Timer class,有一个后台线程可以完成工作:

  

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

您如何观察CPU使用情况?您是否尝试过JVM Profiler?