使用时
Timer.schedule(TimerTask task, long delay, long period)
(即固定延迟执行),如果指定的情况会发生什么TimerTask
's run()
方法花费的时间长于period
去完成?两个并发有可能吗TimerTask
线程会因此而运行?
如果是这样,有办法避免吗?
Timer's 文档 http://java.sun.com/javase/6/docs/api/java/util/Timer.html说如下:
计时器任务应该很快完成。如果计时器任务需要过多的时间才能完成,它就会“占用”计时器的任务执行线程。反过来,这可能会延迟后续任务的执行,当(并且如果)有问题的任务最终完成时,这些任务可能会“聚集”并快速连续执行。
也就是说,并发TimerTask
线程将不会运行。任务将累积到队列中。这可能合适,也可能不合适(更有可能的是,不合适)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)