#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,但想写多线程的同学参考。。嘿嘿