多线程的程序在多核CPU与单核CPU运行效率有何不同

来源:互联网 发布:数据库用接口d 编辑:程序博客网 时间:2024/05/17 01:39

文章出处: http://topic.csdn.net/u/20080429/17/689d07f9-1199-4c8f-b7b7-60b24609270f.html


    Depends on how the OS schedule threads to CPUs, and how applications set their threads' processor affinity

    In windows, the operation system does the allocation for you based on cpu usage. You can set the affinity but, it will not determine which processor you run on. On the XBox 360, the affinity is needed otherwise the 360 will not allocate your thread to a seperate processor at all.

    In Mac, threads with default affinity policy will be scheduled freely on any processor. These threads will be preferentially migrated to run on an idle processor. Threads with affinity tags will tend to remain in place.

    In Linux, you can force the thread to migrate on the other cpu, by calling *_setaffinity() with different mask.




原创粉丝点击