// ランデブーシミュレーション #include "stdafx.h" #include "conio.h" #include "process.h" #include "windows.h" int nProc=2;int EndFlag=false; int readStart=false; int readFlag = false,readData; void inPort(void *a){ int DT[]={0,1,2,3},i=0; readStart=true; for(int j=0;j<10;j++){ while(!readFlag)Sleep(1L); readData=DT[i];i++;if(i>=4) i=0; putch(readData+'0');putch(' '); readFlag=false; } nProc--; } void process(void *a){ readFlag=false; while (!readStart) Sleep(1L); for(int j=0;j<10;j++){ readFlag=true; while(readFlag)Sleep(1L); putch(readData+'A');putch(' '); Sleep(10L); } nProc--; } int _tmain(int argc, _TCHAR* argv[]) { int A=1, B=2; printf("\n "); HANDLE H1=(HANDLE) _beginthread(inPort, 0, (void *)A); HANDLE H2=(HANDLE) _beginthread(process, 0, (void *)B); while(nProc!=0); printf("\n *** Process end\n"); getch(); return 0; }