当前位置: 技术问答>linux和unix
一个进程中的多个线程不会被调度到一台机器中的多个cup并行执行吗?
来源: 互联网 发布时间:2016-07-17
本文导语: 如题,在os恐龙书的习题上看到,想求证一下 | 想不出非常强有力的“不会”的理由。 只能说如果有很多进程、很多线程都处在“可运行”状态,尽量把同一个进程的各个线程安排到同一个物...
如题,在os恐龙书的习题上看到,想求证一下
|
想不出非常强有力的“不会”的理由。
只能说如果有很多进程、很多线程都处在“可运行”状态,尽量把同一个进程的各个线程安排到同一个物理CPU上,有可能性能会好一点。比如提高cache命中率,因为同一个进程的各个线程之间共享许多东西。
只能说如果有很多进程、很多线程都处在“可运行”状态,尽量把同一个进程的各个线程安排到同一个物理CPU上,有可能性能会好一点。比如提高cache命中率,因为同一个进程的各个线程之间共享许多东西。
|
这个问题只能说不一定
跟实现过程中,线程是属于用户态还是内核态有关系,还跟调度策略有关系
如果线程是属于内核态的,并且优先级较高,而调度策略又恰好允许分配时间片给某个进程中的两个或多个线
程,那他们就可以在多个CUP上并行执行
跟实现过程中,线程是属于用户态还是内核态有关系,还跟调度策略有关系
如果线程是属于内核态的,并且优先级较高,而调度策略又恰好允许分配时间片给某个进程中的两个或多个线
程,那他们就可以在多个CUP上并行执行
|
不一定,要看线程之间有没有资源,顺序的依赖关系,要是有的话,并行起来岂不是乱套!