C/C++ 线程同步测试例子

来源:互联网 发布:java程序员接私活 编辑:程序博客网 时间:2024/04/29 22:12


void InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection);

void DeleteCriticalSection( LPCRITICAL_SECTION lpCriticalSection);


void EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection);

void LeaveCriticalSection( LPCRITICAL_SECTIONlpCriticalSection );


CRITICAL_SECTION Section;long nFirst = 0,nSecond = 0;BOOL bFlag = FALSE;DWORD WINAPI ThreadFun(LPVOID lpParam){EnterCriticalSection(&Section);while(bFlag){nFirst ++;nSecond ++;}LeaveCriticalSection(&Section);return 0;}int main(){HANDLE hThread[2] = {0};bFlag = TRUE;InitializeCriticalSection(&Section);hThread[0] = CreateThread(NULL,NULL,ThreadFun,NULL,NULL,NULL);hThread[1] = CreateThread(NULL,NULL,ThreadFun,NULL,NULL,NULL);Sleep(2000);bFlag = FALSE;WaitForMultipleObjects(2, hThread, TRUE, INFINITE);cout<<"F=="<<nFirst<<endl;cout<<"S=="<<nSecond<<endl;CloseHandle(hThread[0]);CloseHandle(hThread[1]);DeleteCriticalSection(&Section);return 0;}


0 0
原创粉丝点击