使用cat /proc/cpuinfo命令查询了自己设备的CPU
#ifndef _GNU_SOURCE #define _GNU_SOURCE #endif #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> #include <iostream> void* thread_func(void* arg) { printf("Thread start.\n"); // 绑定线程到第二个CPU核心上 cpu_set_t cpu_set; CPU_ZERO(&cpu_set); CPU_SET(1, &cpu_set); pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpu_set); // 执行线程任务 while(1){ std::cout<< "pthread" <<'\n'; sleep(1); } printf("Thread end.\n"); return NULL; } // g++ threadcpu.cpp -o threadcpu -lpthread -std=c++14 int main(int argc, char* argv[]) { // 创建线程 pthread_t tid; int rc = pthread_create(&tid, NULL, thread_func, NULL); if (rc != 0) { perror("pthread_create"); exit(EXIT_FAILURE); } // 等待线程执行完毕 pthread_join(tid, NULL); return 0; }
top -p 4078
gdb threadcpu -p 4078