单核cpu上多线程的含义

the meaning of multiple threading on single core cpu

本文关键字:多线程 cpu 单核      更新时间:2023-10-16

我曾经认为只有在需要IO处理的情况下才应该使用多线程。

但是我听说没有IO处理也很有用。因为它有助于占用更多的CPU资源。

在我的理解中,这应该是

the process with more threads are given more CPU time.

这就是为什么多线程有助于提高性能,即使在单核?

在单个CPU上使用多个线程可以看到更好的性能的一个可能原因是CPU往往非常擅长指令重排序和利用指令级并行性。与单个线程中的任何两个顺序指令相比,线程之间的数据和控制依赖关系更少,因此它们为CPU和操作系统级别的调度器提供了更多的可能性,并且重新排序机制非常聪明。

不要忘记,像"在内存中读写"这样的事情在以特定的方式查看时仍然是"I/O"。这些都是相对较慢的操作,并且现代cpu中的大部分流水线都用于隐藏内存延迟——同时执行多个线程对于填补时间是有用的,否则在单个线程中有数据危险的延迟槽必须填充时间。

也就是说,线程通常不是提高性能的好解决方案,而且可能产生恰恰相反的效果。在某些问题上,使用单个线程很容易使所有可用的内存带宽饱和。