【发布时间】:2021-06-25 00:13:33
【问题描述】:
在设计我的执行器服务时需要帮助,或者在这些功能可用时使用现有服务。
假设,我的总计算能力高达 10。 我将为每个任务分配一些权重(2,4,6)。 提交的任务应根据权重运行以使用最大 10。例如(2 个权重任务的 5 个线程,或 2,2,6 或 4,6)。
【问题讨论】:
-
我不确定这是否可行。线程往往由操作系统执行,而不是由 JVM 中的 API 代码执行。因此,您将获得它们权重的操作系统语义,并且这些权重的解释往往因操作系统而广泛变化。例如,我认为 Windows 接近于线性权重,而 *nix 是指数级的。充其量,您最终将无法满足您的要求。在最坏的情况下,您会严重破坏线程。最好让线程自己选择执行而不是搞乱它。
标签: java multithreading threadpool executorservice java-threads