#include <iostream>
#include "Configure.h"
#include "Utils.h"
#include <queue>
#include <semaphore.h>
using namespace std;
#define SIZE 1024
char buffer[SIZE];
sem_t sem;
void *Process(void *args)
{
sem_wait(&sem);
while(strncmp("end", buffer, 3) != 0){
CC_NOTICE("You input %d characters", strlen(buffer));
sem_wait(&sem);
}
pthread_exit(NULL);
}
int main()
{
pthread_t proID;
int ret;
ret = sem_init(&sem, 0, 0);
ret = pthread_create(&proID, NULL, Process, NULL);
if(ret != 0){
CC_FATAL("Create thread error");
exit(1);
}
CC_NOTICE("Please input characters");
while(scanf("%s", buffer)){
sem_post(&sem);
if(strncmp("end", buffer, 3) == 0)
break;
}
pthread_join(proID, NULL);
return 0;
}
linux多线程 --信号量
最新推荐文章于 2019-10-31 19:43:45 发布