首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

生产者消费者 多线程 单个缓冲区 Win32API兑现

2012-10-19 
生产者消费者 多线程 单个缓冲区 Win32API实现#includewindows.h#includeprocess.h#includeiostream

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

热点排行