多核CPU是否同时调度同一进程的多个线程

时间:2012-05-09 06:08:10

标签: c linux

我从很久以前就有很大的问题。基本上我想知道是否在LINUX系统上运行了N个进程,并且每个线程都有多个线程(在多核CPU上)。

在LINUX操作系统中,如果有的话,linux会在同一个实例的不同核心上运行同一进程的多个线程。我有疑问,因为Linux线程共享公共虚拟空间可能是Linux必须同步threds它可能是操作系统的负担是我的想法。

如果linux没有在相同的时间安排相同的进程,我认为它可以提供更好的性能。

3 个答案:

答案 0 :(得分:3)

当然可以。如果没有,那么除了弥补程序员的弱点之外,首先应用多线程的应用程序是没有意义的。

答案 1 :(得分:2)

如果你的系统有N个内核,你可以通过并行化(划分)应用程序工作负载来利用它,比如说m任务或线程。通过这样做,系统可以同时执行n个核心中的m个任务。

答案 2 :(得分:1)

是的,这当然是受到支持的,因为您怀疑这是一个非常复杂的负担。对于(很多)更多细节,请参阅这个优秀(并且非常详细)的内存管理概述: http://lwn.net/Articles/250967/