1.实现信号同步功能
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<pthread.h>
#include<semaphore.h>
#include<unistd.h>
pthread_t td1,tid2;
sem_t sem1,sem2,sem3;
void* fun(void*arg){
while(1){
sem_wait(&sem2);
printf("线程一\n");
sleep(1);
sem_post(&sem3);
}
}
void* fun2(void*arg){
while(1){
sem_wait(&sem3);
printf("线程二\n");
sleep(1);
sem_post(&sem1);
}
pthread_exit(NULL);
}
int main(int argc, const char *argv[]){
sem_init(&sem1,0,1);
sem_init(&sem2,0,0);
sem_init(&sem3,0,0);
if(pthread_create(&td1,NULL,fun,NULL)!=0){
perror("pthread_creatr");
return -1;
}
if(pthread_create(&tid2,NULL,fun2,NULL)!=0){
perror("pthread_creatr");
return -1;
}
while(1){
sem_wait(&sem1);
printf("主线程\n");
sleep(1);
sem_post(&sem2);
}
return 0;
}