基于系统规格的线程化

时间:2011-11-22 15:55:28

标签: multithreading threadpool

我有一台24GB内存的服务器,带有超线程的四核xeon。我需要在我的服务器应用程序中创建一个线程池。线程池的最大线程有哪些指导原则?

由于

2 个答案:

答案 0 :(得分:0)

我通常会选择2倍数量的CPU核心。如果所有线程都忙,这几乎不会产生任何性能损失,但确保如果某些线程执行I / O,则CPU还有其他工作要做的就是空闲。

答案 1 :(得分:0)

没有更多详细信息的唯一可能答案是:添加线程,直到资源耗尽。找一些监视系统资源的工具,并通过实验来实现:在应用程序中添加越来越多的线程,同时密切关注监视器。

  • 如果作业主要是CPU密集型,您可能会使用n_cores + 1个帖子。

  • 如果IO具有延迟(例如,抓取网站),您将添加更多线程。

  • 如果它使用大量内存,您将添加线程,直到您使用所有24gb内存。