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

江苏做网站价格天津企业网站设计制作

江苏做网站价格,天津企业网站设计制作,有没有正规的毕设代做网站,国内联盟wordpress插件pc1.c: 使用条件变量解决生产者、计算者、消费者问题 /* • 系统中有3个线程#xff1a;生产者、计算者、消费者 • 系统中有2个容量为4的缓冲区#xff1a;buffer1、buffer2 • 生产者生产a、b、c、‘d、e、f、g、h八个字符#xff0c;放入到buffer1 • 计算者从b…pc1.c: 使用条件变量解决生产者、计算者、消费者问题 /* • 系统中有3个线程生产者、计算者、消费者 • 系统中有2个容量为4的缓冲区buffer1、buffer2 • 生产者生产a、b、c、‘d、e、f、g、h八个字符放入到buffer1 • 计算者从buffer1取出字符将小写字符转换为大写字符放入到buffer2 • 消费者从buffer2取出字符将其打印到屏幕上 实现思路设置两个大小为4的缓冲区第一个为生产者和计算着共享第二个为计算者和消费者共享。 1、生产者线程产生字符将字符写入缓冲区buffer1中并将指针后移当缓冲区被写满是将生产者线程挂起唤醒计算者线程等待缓冲区buffer1有空闲存储空间的时候再唤醒生产者线程。 2、计算者线程从buffer1中读取数据并移动指针并将读取的数据写入buffer2中当buffer1有空闲时唤醒生产者进程当buffer2被写满时唤醒消费者进程。 3、消费者进程从buffer2中读取字符并输出并移动指针当buffer2有空闲的时候唤醒计算者进程。 实现代码 #includestdio.h #includepthread.h #includeunistd.h#define CAPACITY 4char buffer1[4]; char buffer2[4];int crea; //生产者 int comp1;//计算者 int comp2;//计算者 int cons; //消费者 int buffer1_is_empty(){return creacomp1; }int buffer1_is_full(){return (crea1)%CAPACITYcomp1; }int buffer2_is_empty(){return comp2cons; }int buffer2_is_full(){return (cons1)%CAPACITYcomp2; }int get_item1(){int item;itembuffer1[comp1];comp1(comp11)%CAPACITY;return item; }int get_item2(){int item;itembuffer2[cons];cons(cons1)%CAPACITY;return item; }int put_item1(int item){buffer1[crea]item;crea(crea1)%CAPACITY; }int put_item2(int item){buffer2[comp2]item;comp2(comp21)%CAPACITY; }pthread_mutex_t mutex1; pthread_cond_t wait_empty_buffer1; pthread_cond_t wait_full_buffer1;pthread_mutex_t mutex2; pthread_cond_t wait_empty_buffer2; pthread_cond_t wait_full_buffer2;#define ITEM_COUNT (CAPACITY *2)void *consumer(void *arg){int i;int item;for(i0;iITEM_COUNT;i){pthread_mutex_lock(mutex2);while(buffer2_is_empty())pthread_cond_wait(wait_full_buffer2,mutex2);itemget_item2();printf( consume item:%c\n,item);pthread_cond_signal(wait_empty_buffer2);pthread_mutex_unlock(mutex2);}return NULL; }void *computer(void *arg){int i;int item;for(i0;iITEM_COUNT;i){pthread_mutex_lock(mutex1);while(buffer1_is_empty())pthread_cond_wait(wait_full_buffer1,mutex1);itemget_item1();printf( computer get item:%c\n,item);item-32;pthread_cond_signal(wait_empty_buffer1);pthread_mutex_unlock(mutex1);pthread_mutex_lock(mutex2);while(buffer2_is_full())pthread_cond_wait(wait_empty_buffer2,mutex2);put_item2(item);printf( computer put item:%c\n,item);pthread_cond_signal(wait_full_buffer2);pthread_mutex_unlock(mutex2);}return NULL; }void *create(void *arg){int i;int item;for(i0;iITEM_COUNT;i){pthread_mutex_lock(mutex1);while(buffer1_is_full())pthread_cond_wait(wait_empty_buffer1,mutex1);itemai;put_item1(item);printf(create item:%c\n,item);pthread_cond_signal(wait_full_buffer1);pthread_mutex_unlock(mutex1);}return NULL; }int main(){pthread_t consumer_tid;pthread_t computer_tid;pthread_mutex_init(mutex1,NULL);pthread_mutex_init(mutex2,NULL);pthread_cond_init(wait_empty_buffer1,NULL);pthread_cond_init(wait_full_buffer1,NULL);pthread_cond_init(wait_empty_buffer2,NULL);pthread_cond_init(wait_full_buffer2,NULL);pthread_create(consumer_tid,NULL,consumer,NULL);pthread_create(computer_tid,NULL,computer,NULL);create(NULL);pthread_join(consumer_tid,NULL);pthread_join(computer_tid,NULL);pthread_mutex_destroy(mutex1);pthread_mutex_destroy(mutex2);return 0; } 欢迎留言交流。。。
http://www.yutouwan.com/news/149790/

相关文章:

  • 网站设计要先做图么苏州园区限电
  • 网站模板如何使用 如何修改吗Checkout v1.4.1 WordPress主题
  • 做个营销型网站网站应该设计成什么样
  • 5个免费安全的资源网站wordpress破解汉化版
  • 自适应网站建设特点天眼查询企业
  • 欧美动物人物ppt免费模板下载网站佛山市企业网站建设平台
  • 政协系统网站建设佛山网站快速优化排名
  • 买房子怎么找房源天津网站优化多少钱
  • 做网站 证书 浏览器学校网站建
  • led高端网站建设重庆网站seo设计
  • 上海一家做服饰包鞋穿上用品的网站做编程的 网站有哪些内容
  • 大良营销网站建设平台wordpress xmlrcp
  • 四川高端网站建设公司网站建设重要性
  • 辽阳专业网站开发公司网页设计的就业和发展前景
  • jpress和wordpress哪个好北京网站设计知名乐云seo
  • 网站开发如何支持ipv6电子商务网站建站
  • 制作个人网站怎么做江苏专业网站建设
  • 云主机 多个网站猪价大涨已成定局
  • 济南三合一网站建设物流服务与管理
  • 网站建设 发短信文案利用网站做蜘蛛池
  • 深圳手机端网站建设设计公司什么网络公司比较好
  • 海阳手机网站开发优品ppt模板免费下载
  • 好的网页网站设计给客户做网站建设方案
  • 三五互联做网站怎么样前端用什么框架做网站
  • 二级网站建设方案模板网站内的搜索是怎么做的
  • 包小盒设计网站官网上海软件有限公司
  • 做网站 视频加载太慢竞价排名软件
  • 优购物官方网站地址wordpress如何创建项目
  • 汕头网站制作怎么做邢台信息港房屋出租
  • 秦皇岛网站公司公司的网站费怎样做会计分录