java - ScheduledExecutorService 中的线程排队

标签 java multithreading scheduledexecutorservice

我对 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/

相关文章:

java - 如何将 json 字符串解析为 ArrayList<NameValuePair>

java - 使用 Python 正则表达式解析 Java Arrays.deepToString 输出的浮点字符串

c# - 线程静态,ASP.NET和异步处理程序

java - 在执行器框架中同步资源

java - 具有单线程的计划执行程序服务

java - 在放心测试中使用 PowerMock 模拟静态类

java - 允许使用 iText 签署 pdf

python - 加入守护线程

android - Executors.newSingleThreadScheduledExecutor().schedule 的可靠性

java - 如何使用 ScheduledExecutorService 通过多个服务定期运行作业