使用win32 API创建线程,创建信号量用于线程的同步
创建信号量
语法如下
HANDLE semophore;
semophore = CreateSemaphore(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName);
CreateSemophore函数的原型如下:
HANDLE WINAPI CreateSemaphore(
_In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,//属性
_In_ LONG lInitialCount,//初始值
_In_ LONG lMaximumCount,//最大值
_In_opt_ LPCTSTR lpName//信号量对象的名字
);
函数返回一个指向信号量对象的句柄,是一个HANDLE对象
wait操作和signal操作
使用结构一般是这样的
while(true){
WaitForSingleObject(semophore,INFINITE);//wait操作
//临界区
ReleaseSemaphore(semophore,1,NULL);//signal操作
}
两个函数的原型如下:
DWORD WaitForSingleObjec