Yiy*_*Jia 10 multicore hyperthreading multitasking
两个进程可以同时在一个具有超线程的CPU核心上运行吗?我从互联网上学习.但是,我没有看到明确的直接答案.
编辑: 感谢您的讨论和分享!我的钱包在这里发布我的问题不是讨论并行计算.它太大了,不能在这里讨论.我只想知道多线程应用程序是否可以从超线程中获益,而不是多进程应用程序.在进一步阅读之后,我有以下作为我的学习笔记.
1)启用超线程技术CPU核心有两组CPU状态和中断逻辑.同时,它只有一组执行单元和缓存.(我还没有研究什么是管道)
2)只有在某些执行的线程中发生延迟时,多线程才能从超线程中获益.我认为这一点可以准确地映射为什么以及何时软件程序员使用多线程的常见原因.如果多线程应用程序已经过优化.它可能无法从Hypter线程中获得任何好处.
3)如果CPU状态映射到进程状态,我相信Marc是正确的,多进程应用程序甚至可以从超线程技术中获益更多.
4)当CPU供应商说"线程"时,看起来他们的"线程"与我认为是java程序员的线程不同?
不,超线程 CPU 核心仍然只有一个执行管道。尽管对于上层操作系统来说它看起来像是两个 CPU,但在任何给定时间仍然只执行一条指令。
超线程的目的是允许 CPU 继续执行一个线程,而另一个线程则停止等待资源或其他操作完成,而不会留下太多管道空无用的阶段。这可以追溯到 Pentium 4 天,其管道长得离谱——停顿对于效率和吞吐量来说本质上是灾难性的,而超线程允许英特尔在清理停顿的同时让 CPU 忙于做其他事情。