纯底层的问题--线程&CPU

时间:2021-10-15 00:56:09
1 线程调度应该是在CPU级切换的吧?
2 如果我的系统是多CPU, 1个线程可能在2个CPU上分布运行吗?

如果仅给出答案,但不解释过程,可以得<=20分

7 个解决方案

#1


好像是不行,线程已经是最小单位了,你怎么能再分开呢?
可以把不同的线程分配到不同的cpu上去

#2


不一定阿,如果是并行机,用并行算法,加上合理的调度机制,可以在不同cpu上执行不同的语句,不过那样的机器也很难见的到~~~而且也不一定有线程这个概念.
平常的话,线程应该是cpu级的.

#3


不行!

#4


1. 没错。
2. 可以在两个CPU上运行,但不是分布。
   有些系统的设计是每个线程都和一个特定的CPU绑在一起,不能在别的CPU上执行,好处是CPU的cache命中率比较高,坏处是可能会导致一些CPU空闲另一些过于忙碌。另一种是线程不与特定的CPU关联,每次从Ready队列取一个线程,在任何一个空闲的CPU上执行,其优缺点和上一个正好相反。
  Windows缺省情况下是后一种。

#5


1 进程调度是在CPU级切换的。而不是线程。

#6


1 进程调度是在CPU级切换的。而不是线程。
2 线程在进程之内
3 进程之间是独立的cpu时间,内存空间,他们之间通信一定要用IPC
4 线程在同一进程内共享cpu时间,内存空间
5 windows 下一般多多线程程序,linux下一般多多进程程序

#7


我不知道税的答案正确,清斑竹把分给正确的人吧,不知道是否存在这个功能?

#1


好像是不行,线程已经是最小单位了,你怎么能再分开呢?
可以把不同的线程分配到不同的cpu上去

#2


不一定阿,如果是并行机,用并行算法,加上合理的调度机制,可以在不同cpu上执行不同的语句,不过那样的机器也很难见的到~~~而且也不一定有线程这个概念.
平常的话,线程应该是cpu级的.

#3


不行!

#4


1. 没错。
2. 可以在两个CPU上运行,但不是分布。
   有些系统的设计是每个线程都和一个特定的CPU绑在一起,不能在别的CPU上执行,好处是CPU的cache命中率比较高,坏处是可能会导致一些CPU空闲另一些过于忙碌。另一种是线程不与特定的CPU关联,每次从Ready队列取一个线程,在任何一个空闲的CPU上执行,其优缺点和上一个正好相反。
  Windows缺省情况下是后一种。

#5


1 进程调度是在CPU级切换的。而不是线程。

#6


1 进程调度是在CPU级切换的。而不是线程。
2 线程在进程之内
3 进程之间是独立的cpu时间,内存空间,他们之间通信一定要用IPC
4 线程在同一进程内共享cpu时间,内存空间
5 windows 下一般多多线程程序,linux下一般多多进程程序

#7


我不知道税的答案正确,清斑竹把分给正确的人吧,不知道是否存在这个功能?