让机器所有的cpu核打满

来源:互联网 发布:tp路由器mac地址修改器 编辑:程序博客网 时间:2024/06/05 20:31
让机器所有的cpu核打满

       下面的程序可以将一个机器所有的cpu核打满:
       
#include <stdio.h>#include <stdlib.h>#include <errno.h>#define __USE_GNU#include <sched.h>#include <sys/time.h>#include <sys/resource.h>#include <pthread.h>void thread_func(int n){    cpu_set_t mask;    CPU_ZERO(&mask);    CPU_SET(n,&mask);    if (sched_setaffinity(0, sizeof(mask), &mask) == -1)    {       printf("warning: could not set CPU affinity, continuing...\n");    }    nice(-1);    int pid[1];    struct sched_param p[1];    struct sched_param para;    para.sched_priority = 23;    sched_setscheduler(0, SCHED_FIFO, ¶);    printf("Parent pid is %d policy is %d, prio:%d\n", getpid(), sched_getscheduler(0), para.sched_priority);    while(1)    {    }}int main(int argc, char *argv[]){    int i = 0;    pthread_t id[24];    for (i = 0; i <=23 ; i++)    {        int ret;        ret = pthread_create(&id[i], NULL, (void*)thread_func, i);        if (ret != 0)        {            printf("Create pthread error!\n");            return -1;        }    }    // pthread_join    for (i = 0; i <=23 ; i++)    {        pthread_join(id[i], NULL);    }    return 0;}

0 0
原创粉丝点击