云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 多线程程序设计 for Linux

多线程程序设计 for Linux

  • 62 次阅读
  • 3 次下载
  • 2025/6/14 11:02:25

#include #include #include #include #include #include #include #defineFIFO\#defineN5 intlock_var;time_tend_time; charbuf_r[100];

sem_tmutex,full,avail;/*定义3个信号量,full标识缓冲区是否为满,avail标识缓冲区 是否为空.*/

intfd;

voidpthread1(void*arg); voidpthread2(void*arg); voidconsumer(void*arg); voidproductor(void*arg); intmain(intargc,char*argv[])

{

pthread_tid1,id2;

pthread_tmon_th_id; intret;

end_time=time(NULL)+30;

if((mkfifo(FIFO,O_CREAT|O_EXCL)<0)&&(errno!=EEXIST)) printf(\cannotcreatefifoserver\\n\); printf(\reparingfor readingbytes...\\n\); memset(buf_r,0,sizeof(buf_r)); fd=open(FIFO,O_RDWR|O_NONBLOCK,0); if(fd==-1) {

perror(\open\); exit(1); } ret=sem_init(&mutex,0,1); ret=sem_init(&avail,0,N); ret=sem_init(&full,0,0); if(ret!=0) {

perror(\sem_init\); }

ret=pthread_create(&id1,NULL,(void*)productor,NULL); if(ret!=0)

perror(\ret=pthread_create(&id2,NULL,(void*)consumer,NULL); if(ret!=0)

perror(\pthread_join(id1,NULL); pthread_join(id2,NULL); exit(0);

}

voidproductor(void*arg) {

inti,nwrite;

while(time(NULL)

if(errno==EAGAIN)

printf(\FIFOhasnotbeenreadyet.Pleasetrylater\\n\);

} else

printf(\FIFO\\n\); sem_post(&full);

sem_post(&mutex); sleep(1);

} }

voidconsumer(void*arg) {

intnolock=0; intret,nread;

while(time(NULL)

if(errno==EAGAIN) printf(\et\\n\);

}

printf(\read%sfromFIFO\\n\,buf_r); sem_post(&avail); sem_post(&mutex); sleep(1);

}

}

搜索更多关于: 多线程程序设计 for Linux 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

#include #include #include #include #include #include #include #defineFIFO\#defineN5 intlock_var;time_tend_time; charbuf_r[100]; sem_tmutex,full,avail;/*定义3个信号量,full标识缓冲区是否为满,avail标识缓冲区 是否为空.*/ intfd; voidpthread1(void*arg); voidpthread2(void*arg); voidconsumer(void*arg); voidprod

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com