当前位置: 首页 > wzjs >正文

深圳知名网站建设公司5月新冠病毒最新消息

深圳知名网站建设公司,5月新冠病毒最新消息,医院网站建设招标,天津建设网查询分数1.有三个线程&#xff0c;ID号分别为ABC&#xff0c;且每个线程中都在循环打印自己的ID。要求打印的结果为ABC。 用同步互斥方法控制先后顺序 用条件变量结合互斥锁来实现 #include <myhead.h>pthread_t pid1,pid2, pid3; pthread_cond_t cid1,cid2,cid3; pthread_mutex_…

1.有三个线程,ID号分别为ABC,且每个线程中都在循环打印自己的ID。要求打印的结果为ABC。

用同步互斥方法控制先后顺序

用条件变量结合互斥锁来实现

#include <myhead.h>pthread_t pid1,pid2, pid3;
pthread_cond_t cid1,cid2,cid3;
pthread_mutex_t mid;int flag=0;void* pthreadA(void* arg){  //flag:0时运行while(1){//上锁pthread_mutex_lock(&mid);//判断是否应该解锁退出并休眠if(flag!=0){pthread_cond_wait(&cid1,&mid);}//临界区printf("A");//修改下一个访问条件flag=1;//唤醒其他线程pthread_cond_signal(&cid2);//解锁pthread_mutex_unlock(&mid);}pthread_exit(NULL);
}void* pthreadB(void* arg){   //flag:1时运行while(1){//上锁pthread_mutex_lock(&mid);//判断是否符合条件if(flag!=1){pthread_cond_wait(&cid2,&mid);}//临界值printf("B");//修改下一个访问条件flag=2;//唤醒其他线程pthread_cond_signal(&cid3);//解锁pthread_mutex_unlock(&mid);}pthread_exit(NULL);
}void* pthreadC(void* arg){   //flag:2时运行while(1){//上锁pthread_mutex_lock(&mid);//判断是否符合条件if(flag!=2){pthread_cond_wait(&cid3,&mid);}//临界值printf("C");//修改下一个访问条件flag=0;//唤醒其他线程pthread_cond_signal(&cid1);//解锁pthread_mutex_unlock(&mid);}pthread_exit(NULL);
}int main(int argc, const char *argv[])
{//创建互斥锁pthread_mutex_init(&mid,NULL);//创建条件变量pthread_cond_init(&cid1,NULL);pthread_cond_init(&cid2,NULL);pthread_cond_init(&cid3,NULL);//创建线程if((pthread_create(&pid1,NULL,pthreadA,NULL))<0){printf("create pthreadA fail\n");return -1;}if((pthread_create(&pid2,NULL,pthreadB,NULL))<0){printf("create pthreadB fail\n");return -1;}if((pthread_create(&pid3,NULL,pthreadC,NULL))<0){printf("create pthreadC fail\n");return -1;}//回收线程pthread_join(pid1,NULL);pthread_join(pid2,NULL);pthread_join(pid3,NULL);//销毁条件变量pthread_cond_destroy(&cid1);pthread_cond_destroy(&cid2);pthread_cond_destroy(&cid3);//销毁锁pthread_mutex_destroy(&mid);return 0;
}

2.实现AB进程对话

A进程发送一句话后,B进程接收到打印。然后B进程发送一句话,A进程接收后打印b。

重复上述步骤。直到AB接收或者发送完quit后,结束AB进程

chatA

#include <myhead.h>int main(int argc, const char *argv[])
{umask(0);//创建有名管道文件if(mkfifo("./fifo",0664)<0){if(errno!=17){perror("mkfifo");return -1;}}printf("mkfifo success\n");char buf[128]="";ssize_t res=0;while(1){//写打开管道文件int fd=open("./fifo",O_WRONLY);if(fd<0){perror("open");return -1;}bzero(buf,sizeof(buf));//获取信息fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1]='\0';//写入管道文件if(write(fd,buf,sizeof(buf))<0){perror("write");return -1;}printf("发送成功\n");if(strcmp(buf,"quit")==0){break;}close(fd);//读打开管道文件fd=open("./fifo",O_RDONLY);if(fd<0){perror("open");return -1;}res=read(fd,buf,sizeof(buf));if(res<0){perror("read");return -1;}else if(0==res){printf("对方进程结束\n");break;}printf("B:%s\n",buf);if(strcmp(buf,"quit")==0){break;}                                 close(fd);}return 0;
}

chatB

#include <myhead.h>
int main(int argc, const char *argv[])
{umask(0);if(mkfifo("./fifo",0664)<0){if(errno!=17){perror("mkfifo");return -1;}}printf("mkfifo success\n");char buf[128]="";int res=0;while(1){//读打开管道文件int fd=open("./fifo",O_RDONLY);if(fd<0){perror("open");return -1;                       }bzero(buf,sizeof(buf));res=read(fd,buf,sizeof(buf));if(res<0){perror("read");return -1;}if(res==0){printf("对方进程结束\n");break;}printf("A:%s\n",buf);if(strcmp(buf,"quit")==0){break;}close(fd);//写fd=open("./fifo",O_WRONLY);if(fd<0){perror("open");return -1;                       }bzero(buf,sizeof(buf));fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1]='\0';if(write(fd,buf,sizeof(buf))<0){perror("write");return -1;}printf("发送成功\n");if(strcmp(buf,"quit")==0){break;}close(fd);}return 0;
}
http://www.dtcms.com/wzjs/451875.html

相关文章:

  • 有谁做彩票网站吗南宁网站seo外包
  • 钓鱼网站怎么做防护教程网络运营与推广
  • 上海搬家公司收费价目表seo的定义
  • 中小企业建站是什么百度搜索引擎原理
  • 建设企业网站e路护航google chrome官网
  • 网站的开发与建设百度框架户开户渠道代理
  • 中文外贸网站建设宁德市人民医院
  • 专业的广州手机网站建设2345网址导航怎么卸载
  • wordpress调用一篇合肥网站优化搜索
  • 网站建设与推广方式外贸互联网推广的
  • 信誉好的扬州网站建设cms建站系统
  • 网络规划设计师2019下半年真题网络优化的意义
  • 网站优化排名如何做sem竞价托管多少钱
  • 游戏网站建设一条龙网站优化的方法与技巧
  • 怎么查看网站的pv uv软文是什么文章
  • 做网站的销售工作好吗比较正规的代运营
  • jsp做网站都可以做什么seo推广具体做什么
  • WordPress 错误记录优化大师客服电话
  • 阿里云多网站设计公司网站模板
  • html5音乐网站模板太原seo
  • 淘宝优惠券网站怎么做 知乎上海整站seo
  • 山西省建设厅网站首页安全考核b证日喀则网站seo
  • 蚌埠市建设管理局官方网站百度指数使用指南
  • 个性化网站设计西安百度竞价代运营
  • 网站建设兆金手指下拉百度seo综合查询
  • 美工做图片网站百度云app下载安装
  • 做网站的样版最新军事新闻事件今天
  • 怎么做网站数据库360竞价推广开户多少钱
  • 伪静态网站配置百度推广seo
  • 没有网站怎样做搜索引擎推广站长之家seo查询