gpt4 book ai didi

c++ - 在 c++/c 中利用所有 4 个内核

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:03 25 4
gpt4 key购买 nike

我有一个将创建 4 个线程的主进程。如果我简单地运行所有 4 个线程,内核会利用所有 4 个内核还是程序将在单个内核上进行多线程处理?如果不是,那么如何在多核上处理同步。我有一个 4core intel cpu,我的程序是用 c++ 编写的

我在虚拟机的 Linux 上运行它。

最佳答案

你真的不知道。

一方面,C++03 标准对线程、内核或任何类似的东西一无所知。所以这无论如何都取决于平台。

但即使从平台的角度来看,您通常仍然不知道。操作系统调度线程和作业。操作系统可能——也可能不会——为您提供为特定线程指定“processor affinity”的方法,但这通常需要一些绕圈跳跃才能利用。

您还应该记住的一件事是,如果您的目标是保持每个核心 100% 的利用率,您通常需要超过 n 个线程(其中 n 是核心数)。线程花费大量时间休眠、在磁盘上等待,并且通常在核心 上不做任何事情。您需要的确切线程数取决于您的实际应用程序和平台,但实验可以帮助您对此进行微调。

关于c++ - 在 c++/c 中利用所有 4 个内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7908216/

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