【问题标题】:What do tasks submitted to ScheduledExecutorService do while "waiting" to run提交给 ScheduledExecutorService 的任务在“等待”运行时做了什么
【发布时间】:2018-07-04 15:38:53
【问题描述】:

如果我有这样的事情

scheduledExecutorService.schedule(task,60, TimeUnit.SECONDS);

在这 60 秒还没有结束时,“任务”会发生什么。它会消耗资源吗?因此,下一个问题和我的具体用例是,如果我有很多“任务”要安排,那会是内存/资源效率吗?我的任务是短暂的,但我担心将数百个任务安排到 scheduleExecutorService 的影响。

【问题讨论】:

    标签: java concurrency java.util.concurrent


    【解决方案1】:

    在这 60 秒还没有结束时,“任务”会发生什么。它会消耗资源吗?

    它在 PriorityQueue 中等待,所以是的,它使用了一些资源。

    因此,下一个问题和我的具体用例是,如果我有很多“任务”要安排,那会是内存/资源效率吗?

    并不比将它们存储在队列中差多少。

    我的任务是短暂的,但我担心将数百个任务调度到 scheduleExecutorService 的影响。

    假设每个任务使用 1 KB,您将浪费 100 KB。不太可能成为问题。

    假设每个任务使用 1 GB,那么您可能会遇到问题。我建议你换一种方式。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      相关资源
      最近更新 更多