C语言 2010-07-12 12:40:12 阅读197 评论1   字号:大小 订阅

#include "windows.h"
#include "conio.h"
#include "stdio.h"
#include "time.h"

#define MAX 20

int count;

void Proclucer()
{
 int k,a=0;
 while(1)
 {
  if(count >= MAX)
  {
   printf("缓冲池已满!等待 2 秒!/n");
   Sleep(1000);
  }
  else
  {
   k=rand();
   if(k%2==0)
   {
    a++;
    count++;
    printf("生产了一个产品!当前产品的数量是: %d      生产产品总数:%d /n/n",count,a);
   }
   Sleep(600);          
  }
 }
}

void Consumer()
{
 int k,b=0;
 while(1)
 {
  if(count <= 0)
  {
   printf("缓冲池已空!等待 2 秒!/n");
   Sleep(1000);
  }
  else
  {
   k=rand();
   if(k%2!=0)
   {
    b++;
    count--;
    printf("取出了一个产品!当前产品的数量是: %d      取出产品总数:%d /n/n",count,b);
   }

Sleep(600);
  }
 }
}

int tStop() 
{
 getch();                          
 return 11;      
}

void Start()   
{
 int m;
 HANDLE ahThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Proclucer,NULL,0,NULL);
 HANDLE bhThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Consumer,NULL,0,NULL);
 HANDLE hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)tStop,NULL,0,NULL);      
 m=tStop();
 if(m==11)      
 {
  CloseHandle(ahThread);
  CloseHandle(ahThread);
  CloseHandle(hThread);
  printf("/nClose Thread Success!/n");
 }
}

void main() 
{
 Start(); 
 printf("/n");
}

C语言实现生产者-消费者问题相关推荐

  1. C语言实战——生产者消费者问题

    C语言实战--生产者消费者问题 方法摘要 生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者 ...

  2. 操作系统 - C语言实现生产者消费者问题

    同步互斥问题 - 生产者消费者问题 问题描述: 有多个进程:多个生产者进程和多个消费者进程共享一个初始为空.固定大小为n的缓存(缓冲区).生产者的工作是制造数据,只有缓冲区没满时,生产者才能把消息放入 ...

  3. 实现一个通用的生产者消费者队列(c语言版本)

    背景:笔者之前一直从事嵌入式音视频相关的开发工作,对于音视频的数据的处理,生产者消费者队列必不可少,而如何实现一个高效稳定的生产者消费者队列则十分重要,不过按照笔者从业的经验,所看到的现象,不容乐观, ...

  4. 生产者消费者操作系统实验报告用C语言来实现

    #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h& ...

  5. C语言生产者消费者实验报告,生产者与消费者实验报告.doc

    生产者与消费者实验报告.doc 生产者和消费者实验报告[实验目的]1. 加深对进程概念的理解,明确进程和程序的区别.2. 进一步认识并发执行的实质.3. 验证用信号量机制实现进程互斥的方法.4. 验证 ...

  6. Linux下生产者消费者问题的C语言实现

    注:查看全文请关注作者,或点击前往:生产者-消费者问题的C语言实现 实验六 生产者-消费者问题实现 实验题目 要求 在Linux操作系统下用C实现经典同步问题:生产者-消费者,具体要求如下: (1) ...

  7. windows进程生产者消费者代码c语言,生产者消费者问题---C语言实现

    生产者消费者问题(Producer-consumer problem) 是一个多线程同步问题的经典案例. 生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程.与此同时,消费者也在缓冲区消耗 ...

  8. 在Linux系统下生产者消费者,生产者-消费者问题实现 (linux下C语言)

    操作系统的一个经典问题是"生产者-消费者"问题, 这涉及同步信号量和互斥信号量的应用, 在这里,我用线程的同步和互斥来实现. /* * author 张文 * 2008/06/20 ...

  9. 生产者消费者代码c语言_由生产者消费者模型引出的线程同步问题

    由生产者消费者模型引出的线程同步问题 基本生产者消费者模型: 代码示例: 数据模型: /*** Created by IntelliJ IDEA.** @Author: ZhangDong* @Dat ...

最新文章

  1. 导航控制器自定义返回控件及手势失效问题
  2. 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
  3. 很好的大数据名词解释,收藏
  4. 【转】sql表及字段命名规范
  5. 从graphql endpoint获取schema文件
  6. python enumeration_如何在python中将int转换为Enum?
  7. Vue前端路由(Vue-router)
  8. 让携号转网不再难!但你得了解这几大限制
  9. Code Block 使用笔记(win7、updating)
  10. Win7——Win10系统如何安装Win7系统
  11. 【Python五篇慢慢弹】快速上手学python
  12. 不同发行版linux介绍
  13. Java 项目实战 坦克大战(一)--准备
  14. linux设计引物探针,如何设计荧光定量PCR的引物及TaqMan探针
  15. python删除停用词_删除停用词
  16. ANSYS 有限元分析 加载/求解/输出
  17. 李迅雷:大城市化和居民加杠杆能支撑房价多久
  18. 联系人管理系统 Python GUI版
  19. 通过cmd窗口导入导出mysql数据库
  20. OpenGL像素绘制

热门文章

  1. sew 31系列服务器报警12,SEW变频器MOVITRAC-31C系列故障代码表
  2. 【Netty 】Netty fireChannelRead用法
  3. golang make()内置函数
  4. 久其软件怎么样_久其软件助力中国电信顺利完成网络攻防演练
  5. 差点败北!B站疯传3W次,堪称最强Java面试题,顺利拿下阿里P7的35K*16 薪 Offer...
  6. 织梦html地图插件,织梦dede网站地图xml生成插件(图文教程)
  7. Zabbix使用JMX监控tomcat
  8. 传感器为什么在低量程偏差大_传感器的静态特性
  9. linux mysql设置开机启动脚本_linux下添加oracle自启动脚本
  10. bp神经网络应用实例_自监督图神经网络