用C++在两个不同的内核中制作两个线程

make two thread in two different core in C++

本文关键字:两个 线程 内核 C++      更新时间:2023-10-16

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

p.S:我在C++方面不是那么专业。所以,如果可能的话,请用更简单的方法指导我。

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

HANDLE thread_a = CreateThread(/* ... */);
HANDLE thread_b = CreateThread(/* ... */);
SetThreadAffinityMask(thread_a, 1 << 0);
SetThreadAffinityMask(thread_b, 1 << 1);

注意,1<<01<<1可以分别像12一样容易地写入——我只是试图明确每个比特位置代表一个处理器。

对于posix,请查看pthread_getaffinity_nppthread_setaffinity_np