关于CPU核心,线程,进程,并发,并行,及java线程之间的关系
前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系,
1.CPU角度来看:
我们以Intel的Core i5-8250U为例来举例,它是四核八线程的CPU ,
我认为是一个CPU集成了4个核心,一般来说一个核心对应一个线程,Intel通过超线程技术来实现一个核心对应2个线程,所以它是四核8线程.
线程数:是同一时刻设备能并行执行的程序个数,这里说的线程是CPU级别的,不是java里的线程.
2.操作系统角度:
在操作系统中,进程是最小的资源分配单位,在一个进程中可以有多个线程.如下
我们可以看到这个任务管理器的图,我电脑是4核8线程的CPU,我的电脑四核八线程,是采用超线程技术将一个物理处理核心模拟成两个逻辑处理核心.
我认为,一个逻辑处理器核心同一时间点只能执行一个进程,那理论上最多应该同时执行8个进程啊.
我的电脑同时开启了213个进程,2900个线程,那它是怎么处理的呢?我找了下资料
原来操作系统是采用的是时间片轮转的抢占式调度方式,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离,
由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”.
3.java程序的角度
然后java程序可以算是一个进程,java的线程在jvm里分配,jvm模拟了虚拟的电脑运行环境
4.并发
并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。
因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量。
这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据
并发用户数量的统计的方法目前还没有准确的公式,因为不同系统会有不同的并发特点。例如OA系统统计并发用户数量的经验公式为:使用系统用户数量*(5%~20%)
5.并行
我觉得并行执行是相对顺序执行而言,顺序执行是指一个任务从上到下依次执行.
那么并行执行是指多个任务同时执行
以上就是我的一点个人浅见了,若有不足和错误之处,恳请各位大佬批评指正.
关于CPU核心,线程,进程,并发,并行,及java线程之间的关系的更多相关文章
- (转载)CPU、内存、硬盘、指令以及他们之间的关系
CPU.内存.硬盘.指令以及他们之间的关系 最近读完<程序是怎样跑起来的>以及<深入理解计算机系统>的3.6.9章节后对计算机的组成有了更深入细致的了解,现总结一下对CPU.内 ...
- Java并发编程:Java线程池核心ThreadPoolExecutor的使用和原理分析
目录 引出线程池 Executor框架 ThreadPoolExecutor详解 构造函数 重要的变量 线程池执行流程 任务队列workQueue 任务拒绝策略 线程池的关闭 ThreadPoolEx ...
- Java并发编程:Java线程池
转载自:http://www.cnblogs.com/dolphin0520/p/3932921.html 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题 ...
- java并发笔记之java线程模型
警告⚠️:本文耗时很长,先做好心理准备 java当中的线程和操作系统的线程是什么关系? 猜想: java thread —-对应-—> OS thread Linux关于操作系统的线程控制源码: ...
- 【Java并发基础】Java线程的生命周期
前言 线程是操作系统中的一个概念,支持多线程的语言都是对OS中的线程进行了封装.要学好线程,就要搞清除它的生命周期,也就是生命周期各个节点的状态转换机制.不同的开发语言对操作系统中的线程进行了不同的封 ...
- python 并发编程 操作系统 进程 并发.并行 及 同步/异步,阻塞/非阻塞
操作系统: 多道技术背景: 提高工作效率(充分利用IO阻塞的时间) 同时执行多个任务 多道技术 空间复用:充分的利用内存空间 时间复用:充分利用IO阻塞时间 分时系统: 并发:提高了程序的工作效率 两 ...
- 【Java并发】1. Java线程内存模型JMM及volatile相关知识
Java招聘知识合集:https://www.cnblogs.com/spzmmd/tag/Java招聘知识合集/ 该系列用于汇集Java招聘需要的知识点 JMM 并发编程的三大特性:可见性(vola ...
- Java线程与并发库高级应用-线程范围内共享数据ThreadLocal类
1.线程范围内共享变量 1.1 前奏: 使用一个Map来实现线程范围内共享变量 public class ThreadScopeShareData { static Map<Thread, In ...
- 介绍CPU,内存,硬盘,指令以及他们之间的关系
CPU:CPU,又称CPU芯片,中央处理器.是计算机上最重要的集成电路,位于计算机的主板上面,其主要任务是从主存上面提取指令和对指令进行执行,CPU包括运算逻辑部件.寄存器部件,运算器和控制部件等.C ...
随机推荐
- 一个有趣的 5 X 5 方阵一笔画问题
这个问题是在我上小学时同学告诉我的,当时觉得好玩,就随便瞎画这玩儿,不过从小学到大学,没有一次画成功过.这个问题起初同学告诉我的时候,图不是这样画的,我只是为了好表达,将问题抽象成网格了,原问题是 ...
- virtualenv使用和virtualenvwrapper使用笔记
virtualenv使用笔记 1.安装 pip install virtualenv 2.创建虚拟环境 virtualenv env //对于python2.7,该虚拟环境env必须在英文目录路径下 ...
- bs4-BeautifulSoup
1.BeautifulSoup下载 pip install BeautifulSoup4 或者 pip install bs4 pip install lxml #解析器 2.BeautifulSou ...
- idea打包报错
There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocation ...
- 智能家居系列之——WIFI小车
2017年准备搬新家了,一直关注着树莓派的论坛,看有没有新玩意,想着今年过年在杭州过年,头一次在城里过年,感觉特别无聊,没有麻将可以打,没有鞭炮可以放,只能在家做做小玩意.从小就对四驱车有兴趣,一直想 ...
- 设计模式(C#)——12责任链模式
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 前言 在开发游戏过程中,当玩家合成一种道具的时候,对于不痛的道具,需要的碎片个数,类型是不同的.用传统的写法,就是 ...
- OpenCV学习笔记(一)、VS2015+OpenCV-4.1.1环境配置(Windows10)
1.登陆OpenCV官网,点击打开Releases,会看到各个版本的OpenCV安装文件,选择自己想要的版本下载即可.下载网址:https://opencv.org/releases/ 2.配置环境变 ...
- Libs - 颜色生成网站
介绍几个免费常用的颜色生成网站: 如下 对比色邻近色配色方案 http://www.peise.net/tools/web/ 渐变色方案 https://webgradients.com/ 随机搭配5 ...
- GO.Web服务
Web基础 Web服务器的一般工作原理可以简单地归纳为: 客户机浏览器通过TCP/IP协议建立到服务器的TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档 服务器向客户机发送HT ...
- CodeForces-38B-Chess枚举+思维
CodeForces-38B-Chess 这是一道与下象棋有关的题目,题意是给你一个车和马的坐标,然后再给你一个马,让你判断最后三者都不会被吃掉的可能性,注意的是三者是三个独立的个体. 这道题要知道一 ...