Linux C/C++ 线程亲和性: pthread_attr_getaffinity_np() 函数使用指南
#include <stdio.h>\n#include <pthread.h>\n\nvoid* thread_function(void* arg) {\n\t// 获取线程 ID\n\tpthread_t thread_id = pthread_self();\n\n\t// 获取线程亲和性属性\n\tcpu_set_t cpuset;\n\tCPU_ZERO(&cpuset);\n\tint result = pthread_getaffinity_np(thread_id, sizeof(cpu_set_t), &cpuset);\n\tif (result != 0) {\n\t printf("Failed to get thread affinity.\n");\n\t return NULL;\n\t}\n\n\t// 遍历处理器核心集合\n\tfor (int i = 0; i < CPU_SETSIZE; i++) {\n\t if (CPU_ISSET(i, &cpuset)) {\n\t printf("Thread %lu is allowed to run on CPU %d\n", thread_id, i);\n\t }\n\t}\n\n\treturn NULL;\n}\n\nint main() {\n\tpthread_t thread;\n\tpthread_attr_t attr;\n\n\t// 初始化线程属性\n\tpthread_attr_init(&attr);\n\n\t// 创建线程\n\tint result = pthread_create(&thread, &attr, thread_function, NULL);\n\tif (result != 0) {\n\t printf("Failed to create thread.\n");\n\t return 1;\n\t}\n\n\t// 等待线程结束\n\tpthread_join(thread, NULL);\n\n\treturn 0;\n}
原文地址: https://www.cveoy.top/t/topic/qEM9 著作权归作者所有。请勿转载和采集!