Java最佳线程数
来源:互联网 发布:会计报表软件 编辑:程序博客网 时间:2024/06/16 10:12
对于计算密集型任务,在拥有Ncpu个处理器的系统上,当线程池大小为N+1时,通常能实现最优的利用率,(即当计算密集型任务偶尔由于页缺失故障或者其他原因而暂停时,这个额外的现线程也能够确保CPU的时钟周期不会被浪费。)
对于包含IO操作或者其他阻塞操作的任务,由于线程并不会一直执行,因此线程池的规模应该更大.要正确的设置线程池的大小,你必须估算出任务的等待时间和计算时间的比值。这种估算不需要很精确,并且可以通过一些分析活监控工具老获得。
那么实际使用中并发线程数如何设置呢?分析如下(我们以派系一公式为例):
Nthreads=Ncpu*(1+w/c)
IO密集型:一般情况下,如果存在IO,那么肯定w/c>1(阻塞耗时一般都是计算耗时的很多倍),但是需要考虑系统内存有限(每开启一个线程都需要内存空间),这里需要上服务器测试具体多少个线程数适合(CPU占比、线程数、总耗时、内存消耗)。如果不想去测试,保守点取1即,Nthreads=Ncpu*(1+1)=2Ncpu。这样设置一般都OK。
计算密集型:假设没有等待w=0,则W/C=0. Nthreads=Ncpu。
阅读全文
0 0
- Java最佳线程数
- Java最佳线程数
- 最佳线程数总结
- 最佳线程数
- linux最佳线程数
- 最佳线程数总结
- 最佳线程数
- 最佳线程数总结
- 最佳线程数总结
- tomcat最佳线程数
- Tomcat最佳线程数
- 最佳线程数总结
- 最佳线程数总结(1
- 设置最佳线程数总结
- Jboss调优——最佳线程数
- 最佳线程数和QPS以及RT
- Tomcat设置最佳线程数总结
- Jboss调优——最佳线程数
- mybatis模糊查询
- ProGuard 又搞了个大新闻
- vue的一些认识(未完成)
- 二叉树的镜像
- 如何在mtk andorid6.0上添加一个I2C驱动(这里是添加一个FM 芯片驱动)
- Java最佳线程数
- 一对多映射(省份--城市)
- 冒泡排序的实现方法(Java)
- 类的加载机制,反射,内省,类的加密和自定义加载器
- H5页面上拉加载
- 03刷LeetCode
- sql 我没用过的写法~
- bzoj1083 [SCOI2005]繁忙的都市(kruskal裸题)
- 深入HBase架构解析(二)