我有一台udp服务器,可以接收数据并对其进行计算.
每个角色都有两个线程.
在我的CPU中是8多核,我以可变速度发送数据.
但是在最大程度上我使用了ony吗?我的CPU两个核心的百分比50%.如果我发送更多的数据,我的缓冲区将满,并且不使用更多的cpu.
为什么每个核心仅产生50%而不更多?
我认为将这两个角色划分为多核.
我想确保每个人都在另一个核心上.
如何明确选择在其他内核上运行的每个线程?
我的程序在c Visaul Studio 9上运行,并在Windows7上运行,我使用boost :: thread.
解决方法:
调度程序将处理您的线程等将在何处运行.这是特定于操作系统的,因此,如果您想尝试更改代码的运行方式,则需要特定于操作系统的API,该API可让您设置线程相似性等.
另外,取决于您的应用程序的外观,从外观上看它是一个客户端服务器,因此它并不完全受CPU限制.您总共有多少个线程,每个角色提到2个线程?一个线程只能在一个CPU上运行.尝试使工作单元可以真正并行运行,这样它们就可以真正独立运行,理想情况下可以在不同的内核上运行.
操作系统通常会很好地运行您的代码,因为它将具有更好的整体外观.