Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有没有办法得到线程使用的内核?_C++_Multithreading_C++11 - Fatal编程技术网

C++ 有没有办法得到线程使用的内核?

C++ 有没有办法得到线程使用的内核?,c++,multithreading,c++11,C++,Multithreading,C++11,有没有办法获取线程使用的内核? 比如说 printf("..., Core: %2d\n", coreN); C++没有提供任何函数或任何东西来实现这一点,因为语言中没有核心的概念 您可以通过系统调用运行Linux命令来检查:如果您使用的是基于Linux的系统,您可以使用 sched_getcpu() 打印线程正在运行的当前CPU/内核号 cout << "Thread running on Core " << sched_getcpu() <<endl

有没有办法获取线程使用的内核?
比如说

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

C++没有提供任何函数或任何东西来实现这一点,因为语言中没有核心的概念


您可以通过系统调用运行Linux命令来检查:

如果您使用的是基于Linux的系统,您可以使用

sched_getcpu() 
打印线程正在运行的当前CPU/内核号

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

<代码> CUT NO.C++没有CORE的概念,可能需要使用一个特定于操作系统的函数来解决这个问题。在调用PrtTF期间,线程所使用的内核可以多次切换,除非您专门配置线程亲和力。你的操作系统不能保证它在同一个内核上运行。printf函数本身很可能导致上下文切换。