<p>/*thread.c*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <sched.h> </p><p>void thread_1(void)
{
unsigned int i=0;
unsigned int j=0;
cpu_set_t mask;
CPU_ZERO(&mask);
i=0;
CPU_SET(i,&mask);
if (sched_setaffinity(0,sizeof(mask),&mask) == -1)
{
fprintf(stderr,"ettor");
}
for(i=0;i>=0;i++)
{
for(j=0;j<100000000;j++)
{
i++;
}
sleep(1);
}
}
</p><p>void thread_2(void)
{
unsigned int i;
cpu_set_t mask;
CPU_ZERO(&mask);
i=1;
CPU_SET(i,&mask);
if (sched_setaffinity(0,sizeof(mask),&mask) == -1)
{
fprintf(stderr,"ettor");
}
for(i=0;i>=0;i++)
{
//sleep(2);
}
}
int main(void)
{
pthread_t id_1,id_2;
int i,j,ret;
cpu_set_t mask;
cpu_set_t get;
CPU_ZERO(&mask);
i=3;
CPU_SET(i,&mask);
if (sched_setaffinity(0,sizeof(mask),&mask) == -1)
{
fprintf(stderr,"ettor");
}
ret=pthread_create(&id_1,NULL,(void *) thread_1,NULL);
if(ret!=0)
{
printf("Create pthread error!\n");
return -1;
}
ret=pthread_create(&id_2,NULL,(void *) thread_2,NULL);
if(ret!=0)
{
printf("Create pthread error!\n");
return -1;
}
pthread_join(id_1,NULL);
pthread_join(id_2,NULL);
return 0;
} </p>
多线程绑核
最新推荐文章于 2024-08-13 17:32:26 发布