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

标签 c++ windows multithreading core

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

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分别 -- 我只是想明确说明每个位位置代表一个处理器这一事实。

关于c++ - 在 C++ 中的两个不同核心中创建两个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124586/

相关文章:

c++ - 带文本格式的 QT 日志记录

c# - C++ API 自动转换为 C#?

windows - Node.js windows 服务,无法从服务生成 GUI 应用程序

multithreading - Dart 是单线程的,但为什么它使用 Future Objects 并执行异步操作

c++ - 是否有任何标准如何在 C++ 中编写函数或变量的描述

c++ - "Cannot execute binary file"在 Ubuntu for Windows 平台上使用 Eclipse 运行已编译的 c++ 程序时

mysql - Windows 7 mysql 任务计划程序中出现 0x2 错误

windows - Windows 批处理文件中的计时器

java - 多线程间的共享数据和独有数据

multithreading - 在多线程环境中使用专用 "consoles"的 Lua session