#include
#include
#include
int g_a=0; int g_b=0; bool g_flag=true; CRITICAL_SECTION g_s; unsigned __stdcall ThreadProcA(void *p) { while(g_flag) { EnterCriticalSection(&g_s); g_a++; g_b++; LeaveCriticalSection(&g_s); } return 0; } int main() { HANDLE hThread[2]; InitializeCriticalSection(&g_s); hThread[0]=(HANDLE)_beginthreadex(NULL,0,(unsigned( __stdcall * )( void * ))ThreadProcA,NULL,0,NULL); hThread[1]=(HANDLE)_beginthreadex(NULL,0,(unsigned( __stdcall * )( void * ))ThreadProcA,NULL,0,NULL); Sleep(1000); g_flag=false; WaitForMultipleObjects(2,hThread,TRUE,INFINITE); CloseHandle(hThread[0]); CloseHandle(hThread[1]); DeleteCriticalSection(&g_s); printf("g_a=%d/n",g_a); printf("g_b=%d/n",g_b); return 0; }
线程的临界对象(同步)
最新推荐文章于 2023-03-01 16:32:22 发布