nsignedshortConsumeTD二0;//被消耗的产品的产品号unsignedshortin二0;//产品进缓冲区时的缓冲区下标,用于记录生产者的指针位置unsignedshortout=0;//产品出缓冲区时的缓冲区下标,用于记录消费者的指针位置boolg_continue二1;//控制程序运行:1表示继续运行,0表示停止运行HANDLEg_hMutcx;//线程间的互斥信号量HANDLEg_hFu11Semaphore;//资源信号量:缓冲区满HANDLEg_hEmptySemaphore;//资源信号量:缓冲区空DWORDWINAPIProducer(LPVOID);//生产者线程DWORDWINAPIConsumer(LPVOID);//消费者线程constunsignedshortPRODUCERSCOUNT二4;//生产者的个数constunsignedshortCONSUMERS_COUNT=3;//消费者的个数const?unsignedTHREADS_COUNT=PRODUCERS_COUNT+CONSUMERS_COUNT;//总线稈数HANDLEhThreads[PRODUCERS_COUNT];//各线程的handleDWORDproducerID[CONSUMERSCOUNT];//生产者线程的标识符DWORDconsumerID[TI1READS_COUNT];//消费者线程的标识符/*?生产一个产品?*///生产一个产品,输岀其ID号voidProduce(){std::cout<<std::endl;std::cerr<<,z生产一个产品:"《++ProductlD;std::cout<<std::endl;)/*?生产一个产品?*//*?把新生产的产品放入缓冲?*/short区开始〃把新牛产的产品放入缓冲区voidAppend()