转载于:SPDK线程模型解析 - 知乎
首先,关于计算机系统的很多概念,都有“逻辑层” 和 “物理层”的区分,这个是前提。
然后再看,“核心”这个概念是“物理层”的概念,指的就是 CPU硬件的物理核心数量。
而“线程” 这个概念,是“逻辑层”的概念,而且这个“逻辑层”的概念,还要区分是 “CPU逻辑层” 还是 “操作系统OS逻辑层”。
- 先说 “CPU逻辑层” 的 线程。Intel 在CPU上搞出了HT技术(Hyper Threading),也叫超线程技术。这个技术简单来说,就Intel 把一个CPU核心上,搞出了两个处理的流水线,在使用的时候可以当成两个来用。而他们把这每一个核心分出来的两个流水线,叫做“线程”。这也就是 4核心8线程的意思。从上层逻辑上来看,完全可以把它当作是个8核心的CPU。
- 再说 “操作系统OS逻辑层”的线程。操作系统把把处理单元称为“进程”,然后在每一个进程里面开辟了粒度更细的“线程”,这个“线程”是运行在某个进程中的处理调度单元,是由操作系统提供的虚拟的概念。因为是虚拟出来的,所以操作系统层面来说,“线程”可以创建很多个,而不局限于CPU层面的那个“8个线程”。