cpu个数、核数、线程数、Java多线程关系的理解
来源:互联网 发布:淘宝店铺的介绍女装 编辑:程序博客网 时间:2024/05/22 03:59
一 cpu个数、核数、线程数的关系
cpu个数:是指物理上,也及硬件上的核心数;
核数:是逻辑上的,简单理解为逻辑上模拟出的核心数;
线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数 * 核数
二 cpu线程数和Java多线程
首先明白几个概念:
(1) 单个cpu线程在同一时刻只能执行单一Java程序,也就是一个线程
(2) 单个线程同时只能在单个cpu线程中执行
(3) 线程是操作系统最小的调度单位,进程是资源(比如:内存)分配的最小单位
(4)Java中的所有线程在JVM进程中,CPU调度的是进程中的线程
(5)Java多线程并不是由于cpu线程数为多个才称为多线程,当Java线程数大于cpu线程数,操作系统使用时间片机制,采用线程调度算法,频繁的进行线程切换。
a 那么java多进程,每个进程又多线程,cpu是如何调度的呢?
个人理解:操作系统并不是单纯均匀的分配cpu执行不同的进程,因为线程是调度的最小单位,所以会根据不同进程中的线程个数进行时间分片,均匀的执行每个线程,也就是说A进程中有10个线程,而B进程中有2个进程,那么cpu分给进程的执行时间理论上应该是5:1才合理。
b cpu线程数和java线程数有直接关系吗?
个人理解:没有直接关系,正如上面所说,cpu采用分片机制执行线程,给每个线程划分很小的时间颗粒去执行,但是真正的项目中,线程要做很多的的操作,读写磁盘、数据逻辑处理、出于业务需求必要的休眠等等操作。
c 如何确定程序线程数?
个人理解:一般情况程序线程数等于cpu线程数的两到三倍就能很好的利用cpu了,过多的程序线程数不但不会提高性能,反而还会因为线程间的频繁切换而受影响,具体需要根据线程处理的业务考略,不断调整线程数个数,确定当前系统最优的线程数。
- cpu个数、核数、线程数、Java多线程关系的理解
- CPU核数跟多线程的关系
- CPU核数跟多线程的关系
- CPU核数跟多线程的关系
- CPU核数跟多线程的关系
- CPU核数和多线程的关系
- ubuntu下cpu数,核心数,线程数的关系
- ubuntu下cpu数,核心数,线程数的关系
- Linux下cpu数,核心数,线程数的关系
- CPU的核心数、线程数的关系和区别
- CPU的核心数、线程数的关系和区别
- /proc 查看cpu个数,核数,超线程
- /proc 查看cpu个数,核数,超线程
- Linux查看物理CPU个数、核数、逻辑CPU个数 复制代码 # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
- CPU位数、核数、个数
- linux的CPU物理颗数、内核数、线程数查看及关系
- Linux服务器查看系统的CPU物理个数、核数及是否是超线程
- Linux查看系统cpu个数、核心数、线程数
- Activity 从加载布局文件到显示的过程分析
- Strut2框架从3.2.16.3升级到3.2.32遇到的问题
- Python3实现批量下载百度搜索图片
- Android 事件拦截分析
- ajax提交表单时阻止表单自动提交
- cpu个数、核数、线程数、Java多线程关系的理解
- 蓝桥杯 算法提高 三个整数的排序
- 关于android自定义View无法占满屏幕宽度的解决方案
- JavaSE基础知识学习—集合之HashMap
- 用Python实现一个大数据搜索引擎
- block和del
- Java环境搭建及Demo测试
- $git push origin master时如何解决failed to push some refs to git问题
- 【技术调研】WebP格式在Android平台上的应用