handle[3]=CreateThread(NULL,0,Customer,NULL,0,&dw4);
handle[4]=CreateThread(NULL,0,Customer,NULL,0,&dw5);
}
附:
#include "iostream.h"
#include "windows.h"
#include "stdio.h"
bool lock[4]={false,false,false,false};//四把锁,分别对四个缓冲区进行同步
int buffer[4]={0,0,0,0};//缓冲区,表示资源的个数
void display(){
cout<<"--------------------------------"<
for(int n=0;n<4;n++){
if(buffer[n]==1){//找到满缓冲区
if(lock[n]==false){//同步锁为 false,可以进行操作
lock[n]=true;//加锁,防止其他线程操作此缓冲区
if(buffer[n]>=1){
--buffer[n];//模拟消费资源
cout<<"消费一个资源,从缓冲区"<
1、一个生产者生产,一个消费者消费:
2、 两个生产者连续生产,两个消费者连续消费:
3、 多个生产者于多个消费者进行生产消费操作:
}
六、实验分析
这次多线程的操作系统实验,使我对线程的概念以及多线程程序中线程间的运行有了更深的认识,同
时也让我的编程能力得到了一定的提高。
这次做的用多线程实现生产者与消费者模型的实验,由于我的编程能力基础比较差,对线程也是一无
7
所知,所以一开始觉得无从下手,但幸好老师给了充足的时间,我通过看网上找的视频资料以及请教同学
才渐渐地有了一点概念,然后我试着从网上下了一些多线程的程序分析里面的语句,基本弄懂了多线程的
原理。
8