#include<myhead.h>
#include "sem.h"
int n=5;
//线程1
void* task1(void* arg){
int semid=*(int *)arg;
while(n--){
P(semid,2);
printf("A");
V(semid,0);
}
}
//线程2
void* task2(void* arg){
int semid=*(int *)arg;
while(1){
P(semid,0);
printf("B");
V(semid,1);
}
}
//线程3
void* task3(void* arg){
int semid=*(int *)arg;
while(1){
P(semid,1);
printf("C\n");
V(semid,2);
}
}
int main(int argc, const char *argv[])
{
int semid=create_sem(3);
pthread_t tid1,tid2,tid3;
if(pthread_create(&tid1,NULL,task1,&semid)!=0){
printf("tid1 create error\n");
return -1;
}
if(pthread_create(&tid2,NULL,task2,&semid)!=0){
printf("tid2 create error\n");
return -1;
}
if(pthread_create(&tid3,NULL,task3,&semid)!=0){
printf("tid3 create error\n");
return -1;
}
pthread_join(tid1,NULL);
pthread_join(tid2,NULL);
return 0;
}
IOday8作业
最新推荐文章于 2024-10-11 16:31:23 发布