我正在编写一个c ++程序,在Ubuntu中使用g ++编译器。我的程序中有4个线程,CPU上有4个内核。我想确保每个线程都在不同的核心上运行。我很少熟悉pthread。
答案 0 :(得分:16)
不要这样做。让系统安排线程。如果您将线程关联到不同的核心,则只会妨碍调度程序。当您的应用程序是唯一消耗CPU的应用程序时,调度程序将自然地将每个线程安排在单独的核心上。
答案 1 :(得分:5)
请参阅sched_setaffinity函数:http://manpages.courier-mta.org/htmlman2/sched_setaffinity.2.html