// 我创建了两个线程,本意是 要通过 临界区 实现 线程同步,
在这里 如果去掉 进入(或退出)临界区操作, 可以看到临界区的 作用
但如果都 去掉(即去掉临界区操作那部分) 或 都不 去掉 的话,结果一样,
知道的朋友帮忙改下怎么才能使 两个线程 随机 发生 ????????????
#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);
}
}
评论