#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE_OF_BUFFER 8
//一个生产者一个消费者
DWORD WINAPI Producer(LPVOID param);
DWORD WINAPI Consumer(LPVOID param);
void ErrorForHandle(HANDLE handle);
int getRandNum();
void init();
HANDLE thread1,thread2;
DWORD threadID1,threadID2;
HANDLE g_hFullSemaphore; //当缓冲区满时迫使生产者等待
HANDLE g_hEmptySemaphore; //当缓冲区空时迫使消费者等待
HANDLE mutex;
//缓冲池大小
DWORD itemNum;
int endThreadFlag = 0;
void main()
{
printf("演示过程中请按回车键结束/n按回车开始演示/n");
getch();
itemNum = 0;
g_hFullSemaphore = CreateSemaphore(NULL,0,SIZE_OF_BUFFER-1,NULL);
ErrorForHandle(g_hFullSemaphore);
g_hEmptySemaphore = CreateSemaphore(NULL,
一个简单的C语言操作系统生产者消费者模型
最新推荐文章于 2024-06-15 13:22:33 发布