生产者消费者 多线程 单个缓冲区 Win32API实现
#include<windows.h>#include<process.h>#include<iostream>using namespace std;typedef struct{ HANDLE hEvent1; HANDLE hEvent2; int a;}PARAMS,*PPARAMS;void read(PVOID pvoid){ while(TRUE){ volatile PPARAMS pparams=(PPARAMS)pvoid; WaitForSingleObject(pparams->hEvent1,INFINITE); cout<<"读线程开始读取...\n"; cout<<(pparams->a)<<endl; Sleep(3000); SetEvent(pparams->hEvent2); }}void write(PVOID pvoid){ while(TRUE){ volatile PPARAMS pparams=(PPARAMS)pvoid; WaitForSingleObject(pparams->hEvent2,INFINITE); cout<<"写线程开始写入...\n"; pparams->a=rand()%256; cout<<"写入"<<(pparams->a)<<endl; SetEvent(pparams->hEvent1); }}int main(){ PARAMS params; params.hEvent1=CreateEvent(NULL,FALSE,FALSE,NULL); params.hEvent2=CreateEvent(NULL,FALSE,TRUE,NULL); _beginthread(read,0,?ms); _beginthread(write,0,?ms); HANDLE hEvent; hEvent=CreateEvent(NULL,FALSE,FALSE,NULL); WaitForSingleObject(hEvent,INFINITE); return 0;}供没有学过win32API,但想写多线程的同学参考。。嘿嘿