// 我创建了两个线程,本意是 要通过 临界区 实现 线程同步, 在这里 如果去掉 进入(或退出)临界区操作, 可以看到临界区的 作用 但如果都 去掉(即去掉临界区操作那部分) 或 都不 去掉 的话,结果一样, 知道的朋友帮忙改下怎么才能使 两个线程 随机 发生 ???????????? #include<iostream.h>#include<windows.h> CRITICAL_SECTION hCritical; void display1(){ EnterCriticalSection(&hCritical); cout<<"Thread1 is runing!"<<endl; LeaveCriticalSection(&hCritical);} void display2(){ EnterCriticalSection(&hCritical); cout<<"Thread2 is runing!"<<endl; LeaveCriticalSection(&hCritical);} void main(){ InitializeCriticalSection(&hCritical); static HANDLE hHandle1=NULL; static HANDLE hHandle2=NULL; DWORD dwThreadID1; while(1) { hHandle1=CreateThread((LPSECURITY_ATTRIBUTES)NULL, 0,(LPTHREAD_START_ROUTINE)display1, (LPVOID)NULL,0,&dwThreadID1); hHandle2=CreateThread((LPSECURITY_ATTRIBUTES)NULL, 0,(LPTHREAD_START_ROUTINE)display2, (LPVOID)NULL,0,&dwThreadID1); Sleep(2000); } }

评论