函数名称 | 描述 |
---|---|
CreateThread | 建立线程 |
CreateMutex | 建立互斥对象 |
ReleaseMutex | 释放互斥对象 |
WaitForSingleObject | 获取互斥对象的所有权 |
结构名称 | 描述 |
---|---|
LPSECURITY_ATTRIBUTES | 安全属性结构 |
HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); |
参数 | 描述 |
---|---|
lpThreadAttributes | 安全属性结构, 可设 NULL 表示默认安全性 |
dwStackSize | 线程初始栈的大小, 可设为 0 使用默认大小 |
lpStartAddress | 线程入口函数地址, 参见 ThreadProc |
lpParameter | 线程入口函数的参数 |
dwCreationFlags | 线程附加标志 0 : 线程立即运行 CREATE_SUSPENDED :线程暂停 |
lpThreadId | 线程 ID,输出参数 |
返回值 | 线程句柄 |
线程入口函数定义。
DWORD WINAPI ThreadProc(LPVOID lpParameter) |
HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName ); |
参数 | 描述 |
---|---|
lpMutexAttributes | 安全属性结构, 可设 NULL 表示默认安全性 |
bInitialOwner | 是否立即获得该互斥对象 |
lpName | 互斥对象的名称,字符串型,或指定为 NULL 表示匿名 |
返回值 | 互斥对象句柄 |
BOOL ReleaseMutex( HANDLE hMutex ); |
参数 | 描述 |
---|---|
hMutex | 互斥对象句柄 |
DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); |
参数 | 描述 |
---|---|
hHandle | 互斥对象句柄 |
dwMilliseconds | 等待时间(毫秒),或 INFINITE 一直等待 |
typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; LPVOID lpSecurityDescriptor; BOOL bInheritHandle; } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; |
成员 | 描述 |
---|---|
nLength | |
lpSecurityDescriptor | |
bInheritHandle | 是否继承 |
注:建立互斥对象成功后,如果判断非首次创建的情况
if( GetLastError() == ERROR_ALREADY_EXISTS ) |