最近我不得不编写一些需要大量定时任务的应用程序。但是,我害怕创建这么多的计时器,因为我无法弄清楚它们是如何被Java处理的。启动大量计划任务是否有问题?如果是这样,有什么更好的选择?
答案 0 :(得分:3)
如果你的意思是一个计时器和很多任务,Timer
的Javadocs说:
实施说明:本课程可扩展 大量并发 预定的任务(数千人应该 现在没问题)。在内部,它 使用二进制堆来表示它 任务队列,所以安排成本 任务是O(log n),其中n是 同时安排的人数 任务。
请注意,只有一个线程可以运行任务。如果您需要同时运行大量计时器或更多线程,则应该查看java.util.concurrent.ScheduledThreadPoolExecutor
。
答案 1 :(得分:1)