专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

i7的超线程是什么意思_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 22:09:25       共计:3584 浏览

i7的超线程是什么意思?

CPU的硬件资源是动态分配的,或者说,看运气。

超线程这东西并不像想象的那么美好,单核超线程,和双核单线程的性能差距是很大的。

在实时性要求较高的操作系统里,首要的事情就是关闭超线程,因为超线程会让线程的运行时间变得不确定,据说高性能计算的也会关。

表面上看,是一个核跑着两个线程,实际上两个线程哪个线跑完是不确定的,同样的代码的两个线程,跑在一个核上,可能一个已经跑完了,另一个1/3都还没过。

操作系统调度的时候,会根据核的繁忙程度来分配线程。至于会不会让某一个核忙死另一个核在摸鱼,这种事情很难说,看操作系统的调度器如何设计了。理论上说稍微有点脑子的操作系统都会解决这个问题,比如线程按照奇偶数的方式分配核心,先分配1、3、5、7,跑满了以后才是2、4、6、8,这样就可以避免摸鱼的问题了。

反正我手头的WIN7能明显看出来这种现象(CPU为4核 i7-3770,开超线程):

------------------------

有人贴了AMD的架构,我放一张haswell的图:

可以看到一个核上有不止一个ALU,像x86的LEA指令实际上是有计算的功能的,有单独的ALU负责执行LEA这种指令,所以在任何时刻,一个核里的执行单元都是不可能完全占满的,占不满的情况下,就有能力让另外一个线程执行了,但如果两个线程都需要同样的执行单元(比如都需要进行浮点计算),那么有一个线程就需要等待,此时线程的实际执行时间就是不可控的。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:php 开源教程,想自学PHP开发_PHP基础 | ·下一条:线程再细分就是进程了对不对_java

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有