??
字號:
#include "windows.h"
#include "conio.h"
#include "stdio.h"
#define MAX 20 //定義緩沖池的最大容量是20
int count=5; //初始產品的數量為5
void Proclucer()//生產者函數
{
while(1)
{
if(count >= MAX)
{
printf("緩沖池已滿!等待 1 秒!\n");
Sleep(4000);
}
else
{
count++;
printf("生產了一個產品!當前產品的數量是: %d \n\n",count);
Sleep(1800); //注意毫秒為單位
}
}
}
void Consumer() //消費者函數
{
while(1)
{
if(count == 0)
{
printf("緩沖池已空!等待 2 秒!\n");
Sleep(3000);
}
else
{
count--;
printf("取出了一個產品!當前產品的數量是: %d \n\n",count);
Sleep(1000);
}
}
}
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");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -