首页 > 编程知识 正文

电脑线程数设置,核心线程数设置多少

时间:2023-05-06 12:39:25 阅读:180793 作者:2765

通常,在设置程序线程池时,应该如何设置此参数? 太大无法支撑,太小浪费资源,如何最大化利用线程数?

一般来说,线程池的大小经验值应该这样设置。 ((其中n是CPU的数量) )。

对于CPU密集型APP应用程序,线程池大小设置为n 1;对于I/o密集型APP应用程序,线程池大小设置为2n 1。 当I/o读取或缓存数据时,线程将等待。 此时,如果添加更多的线程,就可以有效地提高CPU使用率。 如果一台服务器只部署了一个此APP应用程序且只有一个线程池,则此估计可能是合理的。 具体来说,需要通过自己的测试进行验证。

但是,这样的估计公式可能适合IO的优化。

最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目

显然是线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。

举个例子吧。

假设每个线程的平均CPU执行时间为0.5s,线程等待时间(非CPU执行时间,例如IO )为1.5s,CPU核心数为4,根据以上公式推算,为((0.5 ) 1.5 )/0.5 ) *4=16 该公式进一步如下

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /

刚才提到的线程池大小的经验值,实际上是这样的公式的推测值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。