首页 > 其他 > 详细

03CriticalSection

时间:2017-02-01 23:21:59      阅读:230      评论:0      收藏:0      [点我收藏+]
 1 #include<stdio.h> 
 2 #include<stdlib.h>
 3 #include<process.h>
 4 #include<windows.h>
 5 
 6 int g_nCount1 = 0,g_nCount2 = 0;
 7 bool g_bThreadProc;
 8 CRITICAL_SECTION g_cs;
 9 
10 UINT __stdcall ThreadProc(LPVOID);
11 int main(int argc,char* argv[])
12 {
13     HANDLE h[2];
14     unsigned dwThreadId;
15     InitializeCriticalSection(&g_cs);
16     g_bThreadProc = true;
17     h[0] = (HANDLE)::_beginthreadex(NULL,0,ThreadProc,NULL,0,&dwThreadId);
18     h[1] = (HANDLE)::_beginthreadex(NULL,0,ThreadProc,NULL,0,&dwThreadId);
19     Sleep(1000);
20     g_bThreadProc = false;
21     ::WaitForMultipleObjects(2,h,true,INFINITE);
22     DeleteCriticalSection(&g_cs);
23     printf("g_nCount1:%d  g_nCount2:%d\n",g_nCount1,g_nCount2);
24     ::CloseHandle(h[0]);
25     ::CloseHandle(h[1]);
26     
27     system("pause");
28     return  0;
29 }
30 UINT _stdcall ThreadProc(LPVOID lpParam)
31 {
32     EnterCriticalSection(&g_cs);
33     while(g_bThreadProc)
34     {
35         g_nCount1 ++ ;
36         g_nCount2 ++ ;
37     }
38     LeaveCriticalSection(&g_cs);
39     return 0;
40 }

 

03CriticalSection

原文:http://www.cnblogs.com/FWFC/p/6360480.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!