操作系统的进程和CPU的线程有啥区别

超线程的概念是Intel专利。它和多核技术是相关的。Wikipedia上有详细的解释,参见 Hyper-threading。Architecturally, a processor with Hyper-Threading Technology consists of two logical processors per core, each of which has its own processor architectural state. Each logical processor can be individually halted, interrupted or directed to execute a specified thread, independently from the other logical processor on the chip. Unlike a traditional dual core processor configuration that uses two separate physical processors, the logical processors in a Hyper-Threaded core share the execution resources. 简单翻译一下,就是说一个带超线程技术的处理器中,每个核有两个逻辑处理器,每个逻辑处理器都能够独立的进行线程处理(即操作系统的线程),这两个逻辑处理器共享一个内核的处理资源。I5是双核超线程,就是每个核有两个独立的逻辑处理器,一共四个逻辑处理器,能够“同时”执行四个线程。超线程技术对操作系统是透明的,从操作系统看来,它认为每个逻辑处理器是一个独立的物理CPU,不过前提是操作系统支持SMP( Symmetric MultiProcessing)。至于“操作系统的进程是如何在CPU上执行的?”这个问题就太大了,我挺懒的,就不回答了。简单说一句,进程也好、线程也好,最后都是转换成CPU的指令由CPU执行的,所有的CPU指令都需要执行时间,多一个CPU,就能够同时执行很多指令。不论如何模拟,最终CPU指令都必须在某一个物理内核上执行。
■网友
非程序员非码农=_=说一下自己的理解
【操作系统的进程和CPU的线程有啥区别】 CPU的工作是在不断的执行指令--保存上下文--切换进程。就拿最常说的例子qq和qq音乐。这是两个进程,对应的是操作系统的两个进程,每个进程再各自的产生一些线程。这里说的线程和CPU的线程是有区别的。CPU的线程是每个时间片上能执行的指令的句数,也就是每个时间片上(可以理解成每个时刻)能执行4条语句。你的CPU在qq和qq音乐之间切换,如果切换的速度足够快,那感觉就是这两个程序在同时发生。
以上非常不严谨,仅仅是自己浅显的理解。


    推荐阅读