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");
}