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

时间:2014-11-01 00:10:22

标签: multithreading cpu multicore

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

由于

3 个答案:

答案 0 :(得分:7)

核心负责执行线程周期。您拥有的核心越多,您可以同时运行的线程越多。每个核心一次只能执行一条指令,但速度太快,好像您同时运行多个线程。 Intel Processors支持Hyper Threading启用单核支持多个线程,因为operating system每个物理核心的逻辑核心数量是其两倍。例如,Core i3只是一个双核,实际上可以为每个核心提供两个线程,即总共四个线程可以同时运行。但是,即使Core i5 processors是四核,由于它们不支持超线程(i5-661除外),它们可以同时服务的线程数大约等于它们的{{1同行。

答案 1 :(得分:4)

每个核心都可以同时执行一个线程。因此,如果有30个线程和4个核心,则26个线程将等待上下文切换以执行。类似于,线程1-4运行200ms然后5-8运行200 ms等等

答案 2 :(得分:0)

处理器内核能够一次执行一个线程。在四核中,同时执行4个线程。并非所有用户空间线程都同时执行,内核线程也运行以调度下一个线程或执行其他一些内核任务。