我对不同术语及其实际差异感到困惑。它们各自是什么以及它们的实际含义是什么?我在学校的 IT 老师前一天给了我们一个定义,第二天又给了我们另一个定义,所以请您为我解释一下。
谢谢。
最佳答案
线程是由机器执行的程序指令序列。
当程序的单次执行有多个线程时,我们将程序称为多线程。
可以在单处理器机器上模拟多线程:处理器有时会在各个线程之间切换注意力,具体时间由系统的调度策略和程序本身决定。我说的是“模拟”,但就程序员而言,在单处理器系统上运行的正确同步的多线程程序的行为与在多处理器系统上运行的同一程序的行为几乎没有区别。
多处理器系统具有多个 CPU(CPU 也称为“核心”)。在任何给定时刻,每个 CPU 都可能正在执行同一程序的不同线程。或者,不同的 CPU 可以执行不同的程序。
超线程模糊了单处理器系统和多处理器系统之间的区别。超线程处理器就像连体双胞胎:它们具有独立处理器的一些属性(例如,每个处理器都有自己的完整寄存器集),但它们共享一些功能单元。超线程是一个在应用程序级别不可见的硬件设计问题。将其视为一种可以更有效地利用可用芯片的技巧。
关于multithreading - 超线程、多线程、多处理和多任务 - 理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23252636/