Ana*_*ria 0 cpu multithreading cpu-architecture hyperthreading cpu-cores
单线程是运行在单核还是单CPU上?
另外,我有i7。它说我有 4 个核心,但有 8 个线程。核心和线程不是1-1的比例吗?怎么翻倍了?
在这种情况下,CPU 是一个物理芯片,可以与计算机上的其他 CPU 分开安装(如果有多个 CPU 的地方)。
“核心”是 CPU 的处理元件,是与其他核心不同的硬件。如果 CPU 提供多个内核,则期望这些内核不仅彼此独立执行,而且不会争夺同一 CPU 上的大部分资源来执行它们。也就是说,同一 CPU 提供的多个内核不会共享 CPU 的大部分硬件。
此上下文中的“线程”(注意:大多数编程上下文中使用的术语“线程”相关但不同)是代码执行路径,具有其自己独特的寄存器集。一个核心提供一个或多个线程。但是,如果 CPU 核心公开多个线程(通常只有 2 个),则预期线程确实会相互竞争执行资源。
多线程核心(通常称为超线程)的想法是核心拥有大量执行资源。并且单个指令流并不总是能够饱和所有这些资源。因此,如果一个核心运行来自两个线程的指令,它可以更有效地使用其计算资源。
有时操作只是关闭一个线程。内存读取通常会停止线程以等待 RAM 中的数据。此时,核心上的第二个线程将获取核心,直到数据到达。