线程绑定cpu

#include <stdio.h>
#include <pthread.h>
#include <sys/sysinfo.h>
#include <unistd.h>
#include <sched.h>

void SetCpuWhich() {
    int cpu_num=sysconf(_SC_NPROCESSORS_CONF);
    printf("[%s]cpu_num:%d
",__FUNCTION__,cpu_num);

    int cpu_which=1;
    cpu_set_t mask;
    CPU_ZERO(&mask);
    CPU_SET(cpu_which,&mask);
    if(sched_setaffinity(0,sizeof(mask),&mask)==-1) {
        printf("[%s]sched_setaffinity false:cpu_which%d
",__FUNCTION__,cpu_which);
        return;
    }
    else {
        printf("[%s]sched_setaffinity true:cpu_which%d
",__FUNCTION__,cpu_which);
    }
 }

 void GetCpuWhich() {
    int cpu_num=sysconf(_SC_NPROCESSORS_CONF);
    printf("[%s]cpu_num:%d
",__FUNCTION__,cpu_num);

    cpu_set_t get;
    CPU_ZERO(&get);
    if(sched_getaffinity(0,sizeof(get),&get)==-1) {
        printf("[%s]sched_getaffinity false
",__FUNCTION__);
        return;
    }

    for(int i=0;i<cpu_num;i++) {
        if(CPU_ISSET(i,&get)) {
            printf("[%s]sched_getaffinity true:cpu_which:%d
",__FUNCTION__,i);
        }
    }
 }
原文地址:https://www.cnblogs.com/smallredness/p/11003407.html