我脑子里一直有这个令人苦恼的问题,困扰了我好几天。
如果我错了,请纠正我:我对计算机架构和组织的看法是,
在早期的计算机中,单个芯片上有一个处理器。
经过评估,出现了多芯片处理器,每个芯片都有一个处理器。
然后现代出现了多处理器。每个处理器芯片称为一个插槽,该插槽包含多个处理器。它们称为核心。
- 核心:处理器芯片上的单个处理单元。核心的功能可能与单 CPU 系统上的 CPU 相同。
现在我简单说一下对超线程技术的理解。
对于插槽中实际存在的每个物理核心,操作系统会处理两个虚拟(逻辑)核心并尽可能共享工作负载。
这些核心拥有多级大容量内存缓存,并且逻辑处理器共享各个核心的执行单元。
现在我的问题是线程是什么?
作为一名程序员,当我创建两个线程并运行我的程序时,线程如何划分到核心中。
我想知道这些线程在哪个逻辑处理器上运行。
我给了自己一个答案,
这些线程必须在属于两个物理核心的两个独立逻辑处理器上运行,因为如果我们将这些线程划分到一个物理核心的两个逻辑处理器上,则无法实现并发。因为一个逻辑处理器在给定时间在一个物理核心上运行。
如果我的答案有误,请帮助我。我非常感激。