码迷,mamicode.com
首页 > Windows程序 > 详细

windows系统调用 semaphore信号量

时间:2014-06-17 14:26:59      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   color   get   

 1 #include "iostream"
 2 #include "windows.h"
 3 #include "cstring"
 4 using namespace std;
 5 
 6 HANDLE g_hSemThreads=INVALID_HANDLE_VALUE;
 7 
 8 static DWORD WINAPI ThreadProc(LPVOID lpParam){
 9     LONG nPauseMs=reinterpret_cast<LONG>(lpParam);
10     Sleep(nPauseMs);
11 
12     if(g_hSemThreads!=INVALID_HANDLE_VALUE){
13         LONG nPrevCt(0);
14 
15         if(ReleaseSemaphore(
16             g_hSemThreads,
17             1,
18             &nPrevCt
19             )){
20                 printf("%d msec thread ended ,slots left:%d\n",nPauseMs,nPrevCt+1);
21         }
22     }
23 
24     return(0);
25 }
26 
27 
28 
29 void main(){
30     g_hSemThreads=CreateSemaphore(
31         NULL,
32         5,
33         5,
34         NULL
35         );
36     for(int nTotal=20;nTotal>0;nTotal-=2){
37         WaitForSingleObject(g_hSemThreads,INFINITE);
38         LONG nPauseMs=nTotal*5;
39 
40         HANDLE hThread=CreateThread(
41             NULL,
42             0,
43             ThreadProc,
44             reinterpret_cast<LPVOID>(nPauseMs),
45             0,
46             NULL
47             );
48 
49         printf("in the %d msec a thread is creates \n",nPauseMs);
50         CloseHandle(hThread);
51         hThread=INVALID_HANDLE_VALUE;
52     }
53 
54     CloseHandle(g_hSemThreads);
55     g_hSemThreads=INVALID_HANDLE_VALUE;
56     getchar();
57 }

 

windows系统调用 semaphore信号量,布布扣,bubuko.com

windows系统调用 semaphore信号量

标签:style   class   blog   code   color   get   

原文地址:http://www.cnblogs.com/593213556wuyubao/p/3792097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!