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