现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)?
关注:106 答案:2 mip版
解决时间 2021-02-02 01:11
提问者你說、你愛我
2021-02-01 10:18
如果能,那么线程之间的同步怎么样实现?怎么样保证指令的同步。如果不能,那么多核的意义何在,只是提高单个机器上能够运行的进程总数吗?那么对于进程而言,多核与单核有什么区别呢,求大神?
最佳答案
二级知识专家那年仲夏
2021-02-01 11:56
现在的技术,还是一个线程只能运行在一个 CPU 上。多核心,必须用多线程/进程来运行才能实现最大化。当然,你可以单个线程不停的在所有的 CPU 上来回跳。但是效率会很低很低。
因为 CPU 有寄存器和缓存的问题。如果你切换 CPU 运行,所有的数据都要进行一次传递。非常浪费时钟(在 CPU 上,程序执行不是一个时钟马上就能任意执行一个指令,而是流水线作业,一个指令需要很多个时钟才能处理完&#x