线程绑定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\n",__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\n",__FUNCTION__,cpu_which);
        return;
    }
    else {
        printf("[%s]sched_setaffinity true:cpu_which%d\n",__FUNCTION__,cpu_which);
    }
 }

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

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

    for(int i=0;i<cpu_num;i++) {
        if(CPU_ISSET(i,&get)) {
            printf("[%s]sched_getaffinity true:cpu_which:%d\n",__FUNCTION__,i);
        }
    }
 }
posted @ 2019-06-11 14:20  JohnRed  阅读(767)  评论(0编辑  收藏  举报