读书人

生产者消费者 多线程 单个缓冲区 Win3

发布时间: 2012-10-19 16:53:36 作者: rapoo

生产者消费者 多线程 单个缓冲区 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,但想写多线程的同学参考。。嘿嘿

读书人网 >编程

热点推荐