1、信号量
信号量设置一个资源访问计数。当该计数值大于0的时候,该信号量对象为有信号状态,当该计数值等于0的时候,该信号量对象为无信号状态。
2、信号量的使用
(1)创建信号量
HANDLE CreateSemaphore(
LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,//安全属性
LONG lInitialCount,//初始信号量
LONG lMaximumCount,//最大信号量
LPCTSTR lpName //命名
);
(2)等待信号量
WaitForSingleObject
WaitForMultipleObjects
(3)释放信号量
BOOL ReleaseSemaphore(
HANDLE hSemaphore, //信号量句柄
LONG lReleaseCount,//释放信号的数量
LPLONG lpPreviousCount //释放前的数量
);
(4)关闭信号量
CloseHandle
(5)打开信号量
OpenSemaphore
3、代码示例
#include <iostream>
#include <Win