是否有这样的 Java 类:
- 可以通过id添加可执行任务,保证所有具有相同id的任务永远不会同时运行
- 可以将线程数限制在固定数量
简单的 Map 解决方案很容易解决 (1),但很难管理 (2)。同样,我所知道的所有线程池类都将从单个队列中提取,这意味着 (1) 不能保证。
欢迎使用涉及外部库的解决方案。
最佳答案
对于每个 id,你需要一个 SerialExecutor,在 java.util.concurrent.Executor 的文档中有描述。 .所有串行执行器将工作委托(delegate)给 ThreadPoolExecutor具有给定的 corePoolSize。
可以在 my code samples 找到 SerialExecutor 的优化版本.
关于java - Java有可索引的多队列线程池吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972884/