如何在不同的核心上运行不同的线程?
我正在编写一个 C++ 程序,在 Ubuntu 中使用 g++ 编译器。我的程序中有 4 个线程,CPU 有 4 个核心。我想确保每个线程都在不同的核心上运行。我很少熟悉pthread。
Possible Duplicate:
how to set CPU affinity of a particular pthread?
I am writing a c++ program, using g++ compiler in Ubuntu. I have 4 threads in my program and 4 cores on my CPU. I want to be sure that each thread will be run on a different core. I am rarely familiar with pthread.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要这样做。让系统调度线程。如果您将线程关联到不同的核心,您只会妨碍调度程序。当您的应用程序是唯一消耗 CPU 的应用程序时,调度程序自然会将每个线程调度到单独的核心上。
Don't do this. Let the system schedule the threads. If you affinitise the threads to distinct cores you just handicap the scheduler. When your app is the only one consuming CPU, the scheduler will naturally schedule each thread on a separate core.
请参阅 sched_setaffinity 函数: http://manpages.courier-mta.org/htmlman2/sched_setaffinity .2.html
See sched_setaffinity function: http://manpages.courier-mta.org/htmlman2/sched_setaffinity.2.html