C语言实现生产者-消费者问题
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语言实现生产者-消费者问题相关推荐
- C语言实战——生产者消费者问题
C语言实战--生产者消费者问题 方法摘要 生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者 ...
- 操作系统 - C语言实现生产者消费者问题
同步互斥问题 - 生产者消费者问题 问题描述: 有多个进程:多个生产者进程和多个消费者进程共享一个初始为空.固定大小为n的缓存(缓冲区).生产者的工作是制造数据,只有缓冲区没满时,生产者才能把消息放入 ...
- 实现一个通用的生产者消费者队列(c语言版本)
背景:笔者之前一直从事嵌入式音视频相关的开发工作,对于音视频的数据的处理,生产者消费者队列必不可少,而如何实现一个高效稳定的生产者消费者队列则十分重要,不过按照笔者从业的经验,所看到的现象,不容乐观, ...
- 生产者消费者操作系统实验报告用C语言来实现
#include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h& ...
- C语言生产者消费者实验报告,生产者与消费者实验报告.doc
生产者与消费者实验报告.doc 生产者和消费者实验报告[实验目的]1. 加深对进程概念的理解,明确进程和程序的区别.2. 进一步认识并发执行的实质.3. 验证用信号量机制实现进程互斥的方法.4. 验证 ...
- Linux下生产者消费者问题的C语言实现
注:查看全文请关注作者,或点击前往:生产者-消费者问题的C语言实现 实验六 生产者-消费者问题实现 实验题目 要求 在Linux操作系统下用C实现经典同步问题:生产者-消费者,具体要求如下: (1) ...
- windows进程生产者消费者代码c语言,生产者消费者问题---C语言实现
生产者消费者问题(Producer-consumer problem) 是一个多线程同步问题的经典案例. 生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程.与此同时,消费者也在缓冲区消耗 ...
- 在Linux系统下生产者消费者,生产者-消费者问题实现 (linux下C语言)
操作系统的一个经典问题是"生产者-消费者"问题, 这涉及同步信号量和互斥信号量的应用, 在这里,我用线程的同步和互斥来实现. /* * author 张文 * 2008/06/20 ...
- 生产者消费者代码c语言_由生产者消费者模型引出的线程同步问题
由生产者消费者模型引出的线程同步问题 基本生产者消费者模型: 代码示例: 数据模型: /*** Created by IntelliJ IDEA.** @Author: ZhangDong* @Dat ...
最新文章
- 导航控制器自定义返回控件及手势失效问题
- 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
- 很好的大数据名词解释,收藏
- 【转】sql表及字段命名规范
- 从graphql endpoint获取schema文件
- python enumeration_如何在python中将int转换为Enum?
- Vue前端路由(Vue-router)
- 让携号转网不再难!但你得了解这几大限制
- Code Block 使用笔记(win7、updating)
- Win7——Win10系统如何安装Win7系统
- 【Python五篇慢慢弹】快速上手学python
- 不同发行版linux介绍
- Java 项目实战 坦克大战(一)--准备
- linux设计引物探针,如何设计荧光定量PCR的引物及TaqMan探针
- python删除停用词_删除停用词
- ANSYS 有限元分析 加载/求解/输出
- 李迅雷:大城市化和居民加杠杆能支撑房价多久
- 联系人管理系统 Python GUI版
- 通过cmd窗口导入导出mysql数据库
- OpenGL像素绘制
热门文章
- sew 31系列服务器报警12,SEW变频器MOVITRAC-31C系列故障代码表
- 【Netty 】Netty fireChannelRead用法
- golang make()内置函数
- 久其软件怎么样_久其软件助力中国电信顺利完成网络攻防演练
- 差点败北!B站疯传3W次,堪称最强Java面试题,顺利拿下阿里P7的35K*16 薪 Offer...
- 织梦html地图插件,织梦dede网站地图xml生成插件(图文教程)
- Zabbix使用JMX监控tomcat
- 传感器为什么在低量程偏差大_传感器的静态特性
- linux mysql设置开机启动脚本_linux下添加oracle自启动脚本
- bp神经网络应用实例_自监督图神经网络