理论上,比如8核CPU可以同时运行8个thread,但是一般运行多少线程比较合适呢?
我觉得应该大于8个,因为可能有线程空闲,但是太多的线程会有很大的线程切换成本和占有太多内存。根据大家的经验,线程数应该怎么确定?
理论上,比如8核CPU可以同时运行8个thread,但是一般运行多少线程比较合适呢?
我觉得应该大于8个,因为可能有线程空闲,但是太多的线程会有很大的线程切换成本和占有太多内存。根据大家的经验,线程数应该怎么确定?
线程大小 = ( (线程io时间 + 线程cpu) / 线程cpu time) * cpu核数
可以参考本人的博客
http://www.cnblogs.com/tylercao/p/4733238.html
如果服务器就只有你一个程序就CPU数量,或者CPU数据*2都可以,如果还有其他程序,我建议是比CPU数量低,具体低多少还是测试一下看看实际情况。要不你把CPU资源都占了,CPU调度的大部分时间都可能命中你的程序。
4 回答1.8k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
4 回答2.4k 阅读
2 回答847 阅读✓ 已解决
2 回答1.4k 阅读
阻塞型任务:可用CPU*(5-10)
计算型任务:可用CPU数
JAVA并发编程实践中有讲过