0

我读了一些关于这个问题的文章。这个案子似乎并不容易。我想在两个核心中创建两个不同的线程。我读的文章太复杂了。我什至无法根据这些文章创建一个简单的线程。另一方面,我需要了解计算机必须提供多少个内核,以作为使用两个内核或仅在一个内核上创建线程的选择。我想在窗户上做。任何帮助都将受到高度欢迎

PS:我不是 C++ 专家。所以,如果可能的话,请用更简单的方法指导我。

4

2 回答 2

5

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

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

SetThreadAffinityMask(thread_a, 1 << 0);
SetThreadAffinityMask(thread_b, 1 << 1);

请注意,1<<0and1<<1可以像12分别一样容易地编写——我只是想明确说明每个位位置代表一个处理器的事实。

于 2012-08-25T18:40:43.377 回答
1

For posix, check out pthread_getaffinity_np and pthread_setaffinity_np

于 2012-08-25T18:44:11.187 回答