我正在编写这个使用Boost线程和SFML来使用TCP和UDP套接字的c ++应用程序。我有一个4代码Xeon CPU,但似乎我只使用1核心。如何才能访问完整的4个核心?
答案 0 :(得分:1)
线程分配取决于您使用的操作系统。另外请告诉我你的意思是“但似乎我只使用了1个核心”。
但是你可以做一些研究:
如果您使用的是Windows,那么有一个很好的程序可以显示您的应用程序中运行了多少个线程,哪个线程与特定的HW核心和用法相关联(单击属性和线程选项卡): http://technet.microsoft.com/en-us/sysinternals/bb896653
您的线程实际执行了哪些工作?也许你有一些竞争条件,如线索饥饿等。
AFAIK让几个线程只发送一些数据是没有意义的,因为所有数据都通过内核驱动程序传输并在最后序列化。
BR