gpt4 book ai didi

c++ - 如何在其他核心上运行每个线程?

转载 作者:行者123 更新时间:2023-11-30 00:55:09 25 4
gpt4 key购买 nike

我有一个 udp 服务器接收数据并计算它。

每个角色我有两个线程。

在我的 cpu 中是一个 8 多核,我以不同的速度发送数据。

但在最大情况下,我只使用了 %14% 的 cpu 两个核心 50%。如果我发送更多数据值,我的缓冲区将填满并且不会使用更多 CPU。

为什么每个核心只出现 50% 而不是更多?

我想把这两个角色分给多核。

我想确保每一个都在另一个核心上。

我如何才能显式地选择在其他核心上运行的每个线程?

我的程序在 c++ visaul studio 9 上运行,在 windows7 上运行,我使用 boost::thread。

最佳答案

调度程序将处理您的线程等将在何处运行。这是特定于操作系统的,因此如果您想尝试改变代码的运行方式,您将需要一个特定于操作系统的 API,它可以让您设置线程关联等。

此外,取决于您的应用程序是什么样的,从外观上看它是一个客户端服务器,因此它不完全受 CPU 限制。您总共有多少个线程,您提到每个角色 2 个?一个线程只能在一个CPU上运行。尝试制作可以真正并行运行的工作单元,这样它们就可以真正独立运行,最好是在不同的内核上运行。

操作系统通常会很好地运行您的代码,因为它具有更好的整体画面。

关于c++ - 如何在其他核心上运行每个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12880606/

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