我对 ScheduledExecutorService
的工作原理有疑问,假设我已经声明了一个执行器,如下所示:
private static final ScheduledExecutorService SCHEDULED_EXECUTOR = Executors.newScheduledThreadPool(2);
而且,这是我将创建的任务,以便在一天过去后运行:
SCHEDULED_EXECUTOR.schedule(() -> {
// do stuff
}, 1, TimeUnit.DAYS);
如果同时收到四个请求,是否所有计时器都运行,然后只有两个线程并行运行?或者只是两个计时器并行运行?
最佳答案
您将 ExecutorService 配置为使用两个线程。这意味着(最多)两个线程将并行服务任务。
因此,当 4 个提交进来时,它们将被“分派(dispatch)”到这两个线程。
这就是全部内容。
关于java - ScheduledExecutorService 中的线程排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889017/