Hyper线程CPU +调度器上的硬件线程(逻辑核心)
我知道软件线程得到一定的时间来执行,每个软件线程轮流执行该时间块,但它们不是同时执行(在单个硬件线程上)。
我的问题是,如果每个核心有两个或更多的硬件线程,每个硬件线程是否在该核心上并发运行,或者硬件线程像软件线程那样获得时间块来玩循环游戏?
硬件线程=逻辑核心
每个(逻辑)核心只有1个(硬件)线程。
英特尔通过在1个物理内核上运行两个逻辑线程来混淆水,因此只有对于某些处理器,您的问题才适用。 超线程很复杂,但主要是并发的。
就程序员而言,只存在一次运行1个线程的逻辑内核。
如果您正在讨论具有超线程的处理器,那么该处理器对于执行周期的大部分部分都有额外的执行流水线。 就.net应用程序而言,是的,你不会有时间分割和锁定软件线程。 您仍然需要确保您的操作是线程安全的,否则您将需要执行自己的锁定,以确保您不会通过同时从多个线程调用它们来破坏对象。 验证这一点的快速测试是使用带有超线程的计算机,产生一些执行处理器繁重操作的线程并查看CPU使用情况。 如果你看到100%的所有虚拟核心,那么你就是金牌。
链接地址: http://www.djcxy.com/p/36873.html上一篇: Hardware threads (logical cores) on Hyper threaded CPUs + scheduler