我读了一些关于这个问题的文章。这个案子似乎并不容易。我想在两个核心中创建两个不同的线程。我读的文章太复杂了。我什至无法根据这些文章创建一个简单的线程。另一方面,我需要了解计算机必须提供多少个内核,以作为使用两个内核或仅在一个内核上创建线程的选择。我想在窗户上做。任何帮助都将受到高度欢迎
PS:我不是 C++ 专家。所以,如果可能的话,请用更简单的方法指导我。
我读了一些关于这个问题的文章。这个案子似乎并不容易。我想在两个核心中创建两个不同的线程。我读的文章太复杂了。我什至无法根据这些文章创建一个简单的线程。另一方面,我需要了解计算机必须提供多少个内核,以作为使用两个内核或仅在一个内核上创建线程的选择。我想在窗户上做。任何帮助都将受到高度欢迎
PS:我不是 C++ 专家。所以,如果可能的话,请用更简单的方法指导我。
虽然这通常是一个糟糕的想法(线程调度程序通常自己做得更好),但基本的想法是:
HANDLE thread_a = CreateThread(/* ... */);
HANDLE thread_b = CreateThread(/* ... */);
SetThreadAffinityMask(thread_a, 1 << 0);
SetThreadAffinityMask(thread_b, 1 << 1);
请注意,1<<0
and1<<1
可以像1
和2
分别一样容易地编写——我只是想明确说明每个位位置代表一个处理器的事实。
For posix, check out pthread_getaffinity_np
and pthread_setaffinity_np