#include<windows.h> #include<conio.h> #include<stdio.h> DWORD ChildMain(); DWORD ChildMain1(); int Global=0; main() { int j ,b; INT giThreadNumber=1; DWORD dwThreadId; HANDLE hThread_2,hThread_3; DWORD dwCreationFlags=0; hThread_2=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ChildMain,(LPVOID)giThreadNumber,dwCreationFlags,&dwThreadId); hThread_3=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ChildMain1,(LPVOID)giThreadNumber,dwCreationFlags,&dwThreadId); printf("创建线程完成,线程1运行!\n"); for(j=0;j<50000;j++); printf("线程1空循环%d次Global=%d\n",j,Global); printf("线程1输入!\n"); b=getche(); printf("线程1第1次输入结果:%c\n",b); b=getche(); printf("线程1第2次输入结果:%c\n",b); getch(); } DWORD ChildMain(giThreadNumber) { int j,b; printf("线程2开始运行!\n"); Global=1000; for(j=0;j<4000000;j++); printf("线程2空循环%d次Global=%d\n",j,Global); Global=2; printf("线程2输入!\n"); b=getche(); printf("线程2第1次输入结果:%c\n",b); b=getche(); printf("线程2第2次输入结果:%c\n",b); while(1) b=j+5; } DWORD ChildMain1(giThreadNumber) { int j,b; printf("线程3开始运行!\n"); Global=6; for(j=0;j<40000;j++); printf("线程3空循环%d次Global=%d\n",j,Global); Global=2; printf("线程3输入!\n"); b=getche(); printf("线程3第1次输入结果:%c\n",b); b=getche(); printf("线程3第2次输入结果:%c\n",b); while(1) b=j+5; }

|