一、Java并发编程实战

仔细观察上面两个公式,其实是类似的,在CPU使用率达到100%时,其实结论是一致的,这时候计算线程的公式就变成了:
Nthreads=Ncpu∗100%∗(1+w/c)N_{threads}=N_{cpu}*100\%*(1+w/c)Nthreads​=Ncpu​∗100%∗(1+w/c)

根据上面的公式,我们在实践应用中计算的公式就出来了,如下:

  1. 针对IO密集型的:阻塞耗时w一般都是计算耗时的几倍,假设阻塞耗时=计算耗时的情况下,Nthreads=Ncpu∗(1+1)=2NcpuN_{threads}=N_{cpu}*(1+1)=2N_{cpu}Nthreads​=Ncpu​∗(1+1)=2Ncpu​
  2. 对于计算密集型的,阻塞耗时趋于0,即w/c趋于0,公式Nthreads=NcpuN_{threads}=N_{cpu}Nthreads​=Ncpu​

注意上面只是做出的较为普适的线程数公式推算,实际应用中需要考虑多个方面,比如内容容量消耗,任务耗时等,可以对这个公式进行不断的场景调整适配。

参考:
参考文章

Java多线程如何确定线程数相关推荐

  1. Shell多线程操作及线程数控制实例

    来源:http://www.jb51.net/article/51720.htm 这篇文章主要介绍了Shell多线程操作及线程数控制实例,文中从单线程实现一个需求开始,不断加入代码实现多线程以及线程数 ...

  2. Java多线程系列--“JUC线程池”06之 Callable和Future

    转载自  Java多线程系列--"JUC线程池"06之 Callable和Future Callable 和 Future 简介 Callable 和 Future 是比较有趣的一 ...

  3. Java多线程之守护线程实战

    转载自 Java多线程之<<守护线程>>实战 定义 什么是守护线程?与守护线程相对应的就是用户线程,守护线程就是守护用户线程,当用户线程全部执行完结束之后,守护线程才会跟着结束 ...

  4. 记一次生产环境java服务mqtt连接线程数过多的处理过程

    项目介绍: 本项目是负责发放机设备发放商品的平台.发放机设备是厂商控制,发放机平台是我们公司负责开发和维护.发放机设备和平台是通过mtqq协议通信的. mqtt开发客户端使用的是org.eclipse ...

  5. 掌握JAVA多线程的利器-线程池

    为什么80%的码农都做不了架构师?>>>    相信大多数接触过多线程的朋友都会有这样的困惑,明明使用了多线程,为何还是一团糟?用下面两幅图再合适不过了: 理想情况下的多线程VS 现 ...

  6. Java多线程-新特性-线程池

    Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利.为了编写高效稳定可靠的多线程程序 ...

  7. 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略

    目录 引言 线程池使用场景 加快请求响应(响应时间优先) 加快处理大任务(吞吐量优先) 特殊说明 线程池的池化技术 线程池的创建 手动创建 创建newFixedThreadPool线程池 创建newS ...

  8. Java多线程1(线程创建)

    一 线程与进程 什么是进程? 电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的.比如下图中的QQ.酷狗播放器.电脑管家等等.在这里插入图片描述 什么是线程? 进程想 ...

  9. java多线程同步,线程安全--一网打尽

    线程同步的基础是java内存模型,如果对java内存模型还不了解,需要先了解一下 1. volatile volatile的特性 Java内存模型对volatile专门定义了一些特殊的访问规则,当一个 ...

  10. java多线程编程之线程池技术全面解读

    在多线程编程时,创建线程是十分消耗资源的,当线程创建过多时,便会引发内存溢出,因此引入了线程池技术. 目录 线程池的优势 线程池的创建&使用 线程池的工作原理 线程池的参数 功能线程池 线程池 ...

最新文章

  1. wps怎么转成pdf?只需六步的转换方法
  2. 西部数码虚拟服务器备案,虚拟主机备案才能使用吗
  3. trados 2007 2009 共用一个LICENSE服务器
  4. android绘图软件推荐,动漫绘画辅助软件有哪些-7款绘画软件推荐
  5. [转][darkbaby]任天堂传——失落的泰坦王朝(下)
  6. 有限元基础及ANSYS应用 - 第10节 - 实体结构的ANSYS分析
  7. 可以写进简历的软件测试项目实战经验(包含电商、银行、app等)
  8. 无线通信设备安装工程概预算编制_平谷彩钢板净化工程工程安装,洁净棚_青岛嘉瑞宏业净化设备...
  9. 购买大米云主机并配置php环境搭建企业网站
  10. 用具有差分AD输入的单片机测电阻值(电阻分压法)
  11. css动画怎么暂停,纯CSS代码实现动画的暂停与播放
  12. 姿态识别+校准|视觉技术新突破
  13. android实现从耳机和自带麦克风,android插上耳机的时候仍然使用机身的麦克风录音,解决!...
  14. Linux虚拟机基本操作、Xshell连接、更改IP
  15. 如何轻松地打造一款免开发RGB 三路产品?
  16. 专业软件测试工程师必备之软件测试要学什么技能?
  17. CSS实现“大于号”或“小于号”箭头
  18. BUAA_数据结构_2nd_小型图书管理系统
  19. 对象流,管道流和随机访问文件流
  20. 预测性编码(Predictive Coding)简介

热门文章

  1. 实习成长之路:MySQL十二:为什么我删除了表的不少数据,但是大小没变呢?
  2. mysql systemctl开机启动_Linux 开机启动项命令:chkconfig 和 systemctl
  3. RxJava学习总结
  4. android自定义表格布局
  5. python装饰器详解 带参数-python中的装饰器详解
  6. matlab三维矩阵_Matlab绘制三维表面模型说明
  7. python包裹和运费_使用shopifyapipython,添加新产品并注明价格和“需要运费”:Fals...
  8. 带有参数的输出存储过程
  9. mysql 锁_浅谈MySQL的七种锁
  10. python中@staticmethod_Python中的 @staticmethod@classmethod方法