我使用ScheduledThreadPoolExecutor在x个时间内(不超过几秒)延迟短任务执行。 我想知道如果我在3秒内安排7周期任务,那将是什么开销。 是否有更好的选择来做这样的事情(表现明智)?
答案 0 :(得分:1)
如果我在你的鞋子里,我会看看石英:http://www.quartz-scheduler.org/,然后自己决定。
答案 1 :(得分:0)
如果您确实需要以多线程方式进行,我猜没有解决方案可以显着减少开销。
但是,如果你需要的是延迟执行,而不是在不同的线程中执行(例如,对于某种模拟),那么也许你可以通过在同一个线程中运行所有任务来摆脱同步开销。例如,您可以按执行时间将任务放入PriorityQueue
,并创建一个任务运行循环,以便在执行时从队列中运行第一个任务。