用C++在两个不同的核心中创建两个线程

Mas*_*oud 0 c++ windows multithreading core

我读了一些关于这个问题的文章.这个案子似乎并不容易.我想在两个核心中创建两个不同的线程.我读过的文章太复杂了.我甚至无法根据这些文章创建一个简单的线程.另一方面,我需要了解计算机必须提供多少个核心,作为使用核心或仅在一个核心上创建线程的选择.我想在Windows上做它们.任何帮助都会非常欢迎

PS:我不是C++的专业人士.所以请尽可能以更简单的方式指导我.

Jer*_*fin 5

虽然这通常是一个糟糕的想法(线程调度程序通常自己做得更好),但基本的想法是:

HANDLE thread_a = CreateThread(/* ... */);
HANDLE thread_b = CreateThread(/* ... */);

SetThreadAffinityMask(thread_a, 1 << 0);
SetThreadAffinityMask(thread_b, 1 << 1);
Run Code Online (Sandbox Code Playgroud)

请注意,1<<01<<1可以很容易地被写成12分别-我只是想作出明确每个位的位置代表了处理器的事实.