可扩展的优先级ThreadPoolExecutor

时间:2014-11-11 20:03:31

标签: java multithreading concurrency

寻找优化工作负载处理的解决方案,这些工作负载来自后台或来自API任务源。任务代码只是单个Callable类。我想对于不同的任务源有两个独立的线程池是不太优雅的解决方案。所以我需要ExecutorService应具有的以下属性

  • 基于Comparable接口动态动态调整任务执行顺序。 java.util.concurrent.PriorityBlockingQueue已经做到了。我可以将其作为参数传递给java.util.concurrent.ThreadPoolExecutor,以便已经处理过。
  • 线程数优先于scale up and down dynamically(c)

只要Java社区是动态的,也许有人已经将这个问题解决到任何可用的库中?或者我应该覆盖PriorityBlockingQueue方法吗?

1 个答案:

答案 0 :(得分:1)

对于动态缩放部分,这可能有点帮助:https://stackoverflow.com/a/19538899/999043(实际上,您也希望阅读其他答案)。 对于优先级部分,请确保对队列进行排序和插入不会影响可伸缩性。