| 函数名称 | 描述 |
|---|---|
| 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 ) |