【文件属性】:
文件名称:linux中进程问题
文件大小:2KB
文件格式:TXT
更新时间:2016-01-27 15:05:54
父母儿女 水果 盘子
#include
#include
#include
#include
#include
#include
sem_t empty; //定义信号量
sem_t applefull;
sem_t orangefull;
void *procf(void *arg) //father线程
{
while(1){
sem_wait(∅); //P操作
printf("%s\n",(char *)arg);
sem_post(&applefull;); //V操作
Sleep(7);
}
}
void *procm(void *arg) //mother线程
{
while(1){
sem_wait(∅);
printf("%s\n",(char *)arg);
sem_post(&orangefull;);
Sleep(3);
}
}
void *procs(void *arg) //son线程
{
while(1){
sem_wait(&orangefull;);
printf("%s\n",(char *)arg);
sem_post(∅);sleep(2);
}
}
void *procd(void *arg) //daughter线程
{
while(1){
sem_wait(&applefull;);
printf("%s\n",(char *)arg);
sem_post(∅);sleep(5);
}
}
main()
{
pthread_t father; //定义线程
pthread_t mother;
pthread_t son;
pthread_t daughter;
sem_init(∅, 0, 1); //信号量初始化
sem_init(&applefull;, 0, 0);