Windows平台实例代码
#include "stdafx.h"
#include <iostream>
#include <mutex>
#include "windows.h"
using namespace std;
#define BUF_SIZE 10
#define BUF_SIZE_PRODUCER 3
#define BUF_SIZE_CONSUMER 5
int* pBuf = new int[BUF_SIZE]; //定义缓冲区,大小为BUF_SIZE
int iItems = 0; //缓冲区中已完成生产的资源数
int iSpaces = BUF_SIZE; //缓冲区中空闲资源数
int iCurrent = 0; //当前商品总数
int iProducer = 0; //缓冲区头指针
int iConsumer = 0; //缓冲区尾指针
mutex Mutex; //用于缓冲区访问的互斥
HANDLE hEmptyBuf; //缓冲区存在空的信号,用于同步
HANDLE hFullBuf; //缓冲区全部已满信号,用于同步
bool bFlag = true; //控制线程工作
void P(int* pNum)
{
--*pNum;
return;
}
void V(int* pNum)
{