【问题标题】:Multi Core Coding多核编码
【发布时间】:2011-11-13 16:36:48
【问题描述】:

我正在编写这个 c++ 应用程序,它使用 Boost 线程和 SFML 来使用 TCP 和 UDP 套接字。我有一个 4 代码 Xeon CPU,但似乎我只使用 1 个内核。如何访问全部 4 个内核?

【问题讨论】:

    标签: multithreading boost multicore sfml


    【解决方案1】:

    线程分配取决于您使用的操作系统。另外请准确说出“但我似乎只使用 1 个核心”是什么意思。

    但是你可以做一些研究:

    1. 检查 boost hardware_concurency()
    2. 如果您使用的是 Windows,则有一个不错的程序可以显示您的应用程序中运行了多少线程,哪个线程与特定的硬件核心和使用情况相关联(单击属性和线程选项卡): http://technet.microsoft.com/en-us/sysinternals/bb896653

    3. 您的线程实际执行了什么样的工作?也许你有一些竞争条件,比如线程饥饿等。

    4. AFAIK 仅仅因为所有数据都通过内核驱动程序传输并在最后被序列化,所以让多个线程发送一些数据是没有意义的。

    BR

    【讨论】:

    • Thread assignment is up to the OS you are using - 不完全正确(你可以设置线程关联,给定足够的权限)
    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2015-11-12
    相关资源
    最近更新 更多