CPU为何需要多核多线程?
CPU为何需要多核多线程?
我们知道一个进程可以开多个线程,这里我可以理解CPU可以单核多线程,但是为何需要多核多线程?这里的多核有何作用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
CPU为何需要多核多线程?
我们知道一个进程可以开多个线程,这里我可以理解CPU可以单核多线程,但是为何需要多核多线程?这里的多核有何作用?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
上大学了吗?学的是计算机相关专业吗?
《计算机组成原理》《操作系统》这两门课可以解答你的问题,回去翻书吧。
关于多核:
一言蔽之,单核 CPU 的多进程是“伪”并发,实际上同一时间只会有一个进程能调用 CPU,操作系统通过进程调度算法(如:时间片轮转调度、优先级调度、多级队列调度等等)在多个进程间不停切换,只不过因为 CPU 运算速度非常快,这个切换的过程通常是纳秒级的,所以人是感知不到的,以为是有很多个进程在同时执行。
多核才是“真”并发。
关于多线程:
进程的创建销毁开销很大,所以又引入的更加轻量级的线程。
后来又嫌弃线程的开销也很大,又引入了更轻量级的协程。
具体的还是要看书,这玩意儿上学的时候花几节课的时间给你讲,凭啥在网上三两句话就能从头给你讲明白?
一个CPU下的多线程是轮流执行的,也就是说单CPU下的多线程只是在多个任务之间快速的切换,让你觉得多个任务在并行的执行而已。
一旦某个线程进行了大运算量的计算,把CPU都占用了,这个CPU下的其它线程就没机会或只有很少的时间片在运行了,这时候你就会觉得很卡。
而多核下的多线程,即使某个CPU被计算100%占用了,其它核心不受影响,仍然可以处理线程的调度。只有多核下的多线程才能实现真正的并行。