【发布时间】:2014-06-03 21:21:29
【问题描述】:
现代多核处理器真的在做并行处理吗?
例如,英特尔的核心 i7 处理器。其中一些有#of Cores: 4 和#of Threads: 8(取自英特尔的规格页面)。如果我要编写一个有多个执行线程的程序(比如 Java 或 C),它们会真的同时处理吗?我的导师说“多核处理器并非总是如此”,但没有提供太多细节。
为什么英特尔必须同时指定#of Cores 和#of Threads?线程不只是描述程序相关抽象的术语,与实际硬件的“核心”不同吗? (“每个线程都在不同的内核上运行”)。
【问题讨论】:
-
您对硬件线程 (SMT) 和软件线程感到困惑。
-
您的问题标题的答案是“是”。扩展的答案并不完全是编程,而且过于宽泛,因为它需要涵盖所有并行编程和硬件。
-
英特尔拥有他们所谓的“超线程”,它允许每个内核同时运行多个线程。这就是为什么他们说 4 核/8 线程。您最多可以同时执行 8 个线程,但使用 4 个内核的资源。
-
@Adam 你的意思是每个核心运行 2 个线程吗?
标签: multithreading