CPU的发展从早期的单核,发展成现在的多核、双核。

CPU中核心数与线程数的介绍与区别。
核心数是指物理上,也就是硬件上存在几个核心。比如双核就是包括两个相对独立的CPU核心单元组。
线程数是一个逻辑上的概念,就是模拟出的CPU核心数,比如可以通过一个实际的CPU核心单元组模拟出2线程的CPU,一个实体核心,两个逻辑线程,这个单核心的CPU就被模拟成一个类似双核心CPU的功能,可以同时处理两个线程的工作。从任务管理器的性能标签页中看到的就是两个CPU。这种模拟技术被叫做超线程技术。
常说的四核八线,四核指该CPU有四个实体核心,八线指每个CPU运行两个逻辑线程,总共八个线程。
对于CPU来说,线程数 >= 核心数。在不引入超线程技术时,一个核心对应一个线程。通过超线程技术可以使一个核心对应两个线程,也就是说它可以同时运行两个线程。

超线程技术:把一个物理核心模拟成两个逻辑线程,模拟的结果是像两个物理核心一样同一时间运行两个线程,在设备管理器、任务管理器中会显示两个核心,但实际上并不是真正的两核,真单核,虚拟两核。
引入超线程技术的原因:源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。

总结:
单核情况
1)早期(不引入超线程技术):一个CPU核心对应一个线程,核心数等于线程数。
①单任务阶段:任务串行化执行,一段时间执行一个任务。
②多任务阶段:任务并发执行,一段时间执行多个任务,某一时刻只有一个任务在执行,通过CPU分时间片,上下文切换完成。
2)引入超线程技术:四核八线,用单核情况模拟多核情况。

多核情况:多个单核情况,线程可以实现并行执行,也就是同一时刻,有多个任务在执行,属于物理上的同时执行。

java中线程与CPU核的关系相关推荐

  1. 关于java中线程yield()方法问题

    关于java中线程yield()方法问题 问题一: 我知道yield是用来休眠当前线程,但我查看了资料,又说其不会释放锁,所以我就不解了,其明明会将cpu资源给其他线程,那它不释放锁,其他线程有怎么获 ...

  2. Java中线程的状态

    Java中线程的状态 操作系统中线程的状态 Java中线程的状态 线程状态枚举类 操作系统中线程的状态 从操作系统层面来看,线程通常有以下五种状态,前三种是线程的基本状态. [运行态]:进程正处在处理 ...

  3. JAVA中线程同步的方法(7种)汇总

    JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...

  4. java中线程的生命周期

    文章目录 java中Thread的状态 NEW Runnable BLOCKED WAITING TIMED_WAITING TERMINATED java中线程的生命周期 线程是java中绕不过去的 ...

  5. java中线程的6种状态

    java中线程的状态分为6种. 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法. 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running ...

  6. java中线程的状态以及线程栈分析

    java中线程的状态 状态 说明 NEW 初始状态.线程刚刚被创建,并且start()方法还未被调用 RUNNABLE 运行状态.表示线程正在java虚拟机中执行,但是可能正在等待操作系统的其他资源, ...

  7. java中线程的生命周期_Java中的线程生命周期– Java中的线程状态

    java中线程的生命周期 Understanding Thread Life Cycle in Java and Thread States are very important when you a ...

  8. linux中进程与cpu核的绑定

    linux中进程与cpu核的绑定 一.cpu亲缘性 二.fork用法 三.设置进程与cpu的亲缘性 一.cpu亲缘性 进程绑定CPU亲缘性,使得进程只能在指定的cpu上进行调度或者运行. 绑定cpu亲 ...

  9. java有关线程的说法错误的是_下面关于Java中线程的说法不正确的是( )

    下面关于Java中线程的说法不正确的是( ) 答:调用Thread类的sleep()方法可终止一个线程对象. 从造字角度分析,"河"是形声字,"安"是 字,&q ...

最新文章

  1. java web里实现 mvc_MVC模式在Java Web应用程序中的实现
  2. 揭秘百度核心技术:53位专家纯干货分享
  3. next_permutation函数
  4. python opencv如何读取本地视频并显示 cv2.VideoCapture()
  5. pandas基础(part4)--排序/分组/合并
  6. 约瑟夫(环)问题(Josephu)(单向环形链表)
  7. LeetCode 167. 两数之和 II - 输入有序数组 思考分析
  8. matlab 粘连分割代码,【求助】图像中粘连字符切分代码,求注释!!!
  9. 20165226 实验四 Android程序设计
  10. 通过反射获取私有方法
  11. 常用设计模式的小结和实际中的应用
  12. python爬虫菜鸟教程-Python 应该怎么学?
  13. 模型融合之stacking和blending
  14. 数据结构与算法LeetCode题目记录
  15. 【2020年数据分析岗面试题】不断更新...(含自己的理解、思考和简答)
  16. JavaScript分解质因数
  17. Oracle定时任务dbms_job使用详解
  18. C语言程序设计现代方法第二版,第八章课后编程题——第9题生成贯穿10乘10字符组的随机步法
  19. 关于LDO和DC-DC,看这一篇就够了!
  20. 人工智能基础——什么是人工智能

热门文章

  1. Matplotlib常用汇总(更改x轴刻度显示的内容、刻度旋转、)
  2. python的缩进规则是什么意思_Python缩进规则精讲
  3. IOS App 启动时间优化实战
  4. Surface laptop键盘失灵解决方法笔记
  5. ParameterDirection
  6. nodejs读取本地json文件中文乱码问题
  7. 20个常见的Java错误以及规避方法
  8. ubuntu:jdk安装(全)
  9. CODE[VS] 2008 你已经爱我多久了
  10. less命令常用快捷键