gpt4 book ai didi

java - 通过高效的处理器使用来分配计划任务

转载 作者:行者123 更新时间:2023-12-02 08:11:39 26 4
gpt4 key购买 nike

假设 50K Runnables 计划每 30 分钟无限期执行。每个Runnable会花费1-5秒,执行一次Socket操作。TheadPool 的大小为 200。

现在如何使用 ScheduleWithFixedDelay 调用确定每个 50K Runnable 的初始调用延迟(或)如何以处理器有效的方式调度这些 Runnable。

是否有任何标准算法来分配此类调度。

谢谢。

最佳答案

如果您有 50K Runnables,每个 Runnables 最多需要 5 秒,那么工作时间为 250,000 秒。如果您想每 30 * 60 秒运行一次,则需要在至少 139 个线程上运行。如果您使用 200 个线程,则可能需要 20 分钟才能执行完所有线程。如果您希望这些任务在 5 分钟内完成,您可能需要更多线程。

简单的读取或写入不应花费 1-5 秒。一个套接字操作是指读或写,还是指打开一个套接字,发送一些数据并获得回复?后者可能涉及大量开销。

虽然 50K 已经很多了,但我只会有这么多计划任务,除非您需要以尽可能接近的 30 分钟间隔运行任务。如果您有 50K 个独立任务,它们将大约每 30 分钟运行一次,但运行时间彼此不同。这在某种程度上是不可避免的,因为您没有 50K 核心,但是您是否关心尽可能接近地运行它们?

关于java - 通过高效的处理器使用来分配计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7309358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com