资源简介
参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 1000
using namespace std;
int buff;
int fulll;
int *full2;
char *buff1;
void plusORde(int numint number){
full2[num]=full2[num]+number;
}
void down(int *num)
{
while(true)
{
if(*num>0)
{
*num=*num-1;
break;
}
sleep(1);
}
}
void up(int *num)
{
*num=*num+1;
}
char produce_item_low()
{
char ch=((rand() +7)% 26+97);
return ch;
}
char produce_item_lar()
{
char ch=(rand() % 26+65);
return ch ;
}
char remove_item()
{
char ch=buff1[full2[1]-1];
buff1[full2[1]-1]=‘\0‘;
down(&full2[1]);
return ch;
}
void printfCharArray(char *chararrayint len){
printf(“ flag: %d len: %d \n“full2[4]len);
}
void insert_item(char x)
{
char xx[2];
xx[0]=x;
xx[1]=‘\0‘;
strcat(buff1xx);
up(&full2[1]);
}
void consume_item(char item)
{
printf(“\n remove:%c “item);
printfCharArray(buff1full2[1]);
}
void producer(int flag)
{
char item;
while (true)
{
if(full2[4]>200)sleep(
相关资源
- 用线程实现睡觉的理发师问题linux实现
- 网速监控 v1.2 MFC VC C++ 网速监控 线程
- C++程序和C#程序通讯例程
- linux环境下模拟实现简单命令解释器
- Linux下C语言编写服务端、客户端程序
- linux系统下C语言实现带有图形界面的
- 线程安全双向链表源代码
- 操作系统实验-----MFC线程--购票系统演
- mfc实现多线程工程代码和线程进程查
- MFC中的多线程同步
- 操作系统抢占式短进程优先调度算法
- 缓冲池的模拟(C++)
- mysql封装.zip
- 操作系统进程调度C++代码实现
- Linux文件模拟器
- linux 下 python调用c或者c++编写的代码使
- 实验一 实现单处理机下的进程调度程
- 进程的同步-吃水果问题
- Pthread 多线程C++动态库+静态库+头文件
- 编写并调试一个模拟的进程调度程序
- 东北大学操作系统实验1进程的同步与
- 《嵌入式Linux上的C语言编程实践》
- linux opencv车牌识别
- 尚观教育李慧芹Linux下C语言前嵌入式
- 基于Linux C语言的多线程模拟智能家具
- 进程调度程序设计—课程设计
- p2p的C语言编写,LINUX可执行程序+运行
- c++多线程的创建挂起执行与销毁
- MFC多线程编程示例47598
- c++ 实现线程池的使用
评论
共有 条评论