首页 > Java的服务器一般运行几个线程比较合适?

Java的服务器一般运行几个线程比较合适?

理论上,比如8核CPU可以同时运行8个thread,但是一般运行多少线程比较合适呢?
我觉得应该大于8个,因为可能有线程空闲,但是太多的线程会有很大的线程切换成本和占有太多内存。根据大家的经验,线程数应该怎么确定?


经验上来说,一般使用CPU*2的量,当然这个没有科学依据。


线程大小 = ( (线程io时间 + 线程cpu) / 线程cpu time) * cpu核数
可以参考本人的博客
http://www.cnblogs.com/tylercao/p/4733238.html


根据cpu总核数的倍数去做实验,具体机器压测性能就知道


如果服务器就只有你一个程序就CPU数量,或者CPU数据*2都可以,如果还有其他程序,我建议是比CPU数量低,具体低多少还是测试一下看看实际情况。要不你把CPU资源都占了,CPU调度的大部分时间都可能命中你的程序。


阻塞型任务:可用CPU*(5-10)
计算型任务:可用CPU数
JAVA并发编程实践中有讲过


看你的程序是计算密集还是io密集了,或者直接cpu数量*2。万能魔数-_-

【热门文章】
【热门文章】