【问题标题】:Implementation of Thread Pools线程池的实现
【发布时间】:2012-03-16 06:20:44
【问题描述】:

我想知道是否有人知道一些很好的资源来研究线程池是如何实现的。我被要求定义一个动态调整最大线程池大小的算法。大多数资源定义了您想要线程池的情况,即任务是短暂的,但在这个问题中,情况更加多样化。较长的任务以及较短的任务,一些 cpu 密集型,一些经常空闲。

我的第一个答案是“您可能不应该使用线程池”,但我认为我应该有一个真正的答案。

我的一个想法是有一个启发式方法来观察系统资源(CPU、内存)并相应地调整大小。或者我可以监视线程以查看它们花费了多长时间以及 int

【问题讨论】:

  • codeproject 上的Smart Thread Pool 项目相当复杂,但 (IIRC) 它具有您所说的所有功能。
  • 您应该添加一个 .NET 标签。非托管线程非常便宜,以至于这层东西在很大程度上是多余的。如果不受管理,只需在工作队列中抛出 256 个线程,以防大量线程被阻塞。

标签: multithreading pool


【解决方案1】:

您可以使用库therore-concurrent 的类SelfTuningExecutors。我有同样的需求,我决定实现 JDK ThreadPoolExecutor 的扩展,它可以适应不同类型的任务。你可能想看看这个页面link

【讨论】:

    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2012-10-24
    • 2021-01-31
    • 2012-09-04
    • 2013-07-10
    • 2014-04-12
    相关资源
    最近更新 更多