如果我为ScheduledExecutorService安排了多个任务,但是我确保只有线程来执行所有任务,那么每个任务是否会按顺序执行?
例如:在下面的场景中会发生什么
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new Runnable{void run(){....}}, 6000,6000,TimeUnit.MILLISECONDS);
scheduler.scheduleWithFixedDelay(new Runnable{void run(){....}}, 6000,6000,TimeUnit.MILLISECONDS);
答案 0 :(得分:3)
来自javadoc:
创建一个Executor,它使用一个工作线程来操作 无界队列。 (但请注意,如果此单个线程终止 由于在关机之前执行期间出现故障,新的将会 如果需要执行后续任务,请取代它。)任务是 保证按顺序执行,并且不会超过一个任务 在任何特定时间都要活跃。不同于其他等同物 newFixedThreadPool(1)保证不返回执行者 可重新配置以使用其他线程。