有没有办法获取线程使用的核心?

3

有没有办法获取线程使用的核心?
例如:

printf("..., Core: %2d\n", coreN);

3
不,C++没有核心的概念。 - undefined
你可能需要使用一个特定于操作系统的函数来弄清楚这个问题。 - undefined
4
除非你特别配置线程亲和性,否则在调用printf期间,线程使用的核心可能会被多次切换。 - undefined
2
有人肯定会被这个信息误导,你的操作系统不能保证它一直在同一个核心上执行。printf函数本身很可能会引起上下文切换。 - undefined
2个回答

4

如果您正在使用基于Linux的系统,则可以使用

sched_getcpu() 

打印当前线程所在的 CPU/核心编号

cout << "Thread running on Core " << sched_getcpu() <<endl

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接