如何在处理器核心上执行多个线程

use*_*008 4 cpu multithreading multicore

我想知道在处理器内核上如何执行具有更多线程数的多线程程序.例如,我的程序有12个线程,我在intel core-i5机器上运行它.它有四个CPU.每个核心会运行3个线程吗?我很困惑,因为我看到在4核机器上运行30个线程的程序.

谢谢

Piy*_*too 8

核心负责执行线程周期.您拥有的核心越多,您可以同时运行的线程越多.每个核心一次只能执行一条指令,但速度太快,好像您同时运行多个线程. Intel Processors支持超线程,使单个内核能够支持多个线程,因为operating system每个物理内核的逻辑内核数量是其两倍.例如,Core i3只是一个双核,实际上可以为每个核心提供两个线程,即总共四个线程可以同时运行.然而,即使Core i5 processors是四核,由于它们不支持超线程(除了i5-661),它们可以同时服务的线程数量几乎与它们的Core i3对应线程相同.


Ste*_*eve 5

每个内核将能够同时执行一个线程。因此,如果有30个线程和4个内核,则26个线程将等待获取上下文切换以执行代码。像这样,线程1-4运行200毫秒,然后5-8运行200毫秒,依此类推