gpt4 book ai didi

c++ - 单核cpu多线程的意义

转载 作者:行者123 更新时间:2023-11-28 00:44:34 24 4
gpt4 key购买 nike

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

不过听说不用IO处理也有用。因为它有助于占用更多的 CPU 资源。

我的理解是

the process with more threads are given more CPU time.

这就是多线程有助于提高单核性能的原因吗?

最佳答案

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

不要忘记,从特定的角度来看,“在内存中读写”之类的东西仍然是“I/O”。这些是相对较慢的操作,现代 CPU 中的大部分流水线都用于隐藏内存延迟——同时执行多个线程可能有助于填充时间,否则这些时间将不得不用延迟槽填充,其中存在数据危险一个线程。

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

关于c++ - 单核cpu多线程的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com