线程 API

函数名称 描述
CreateThread 建立线程
CreateMutex 建立互斥对象
ReleaseMutex 释放互斥对象
WaitForSingleObject 获取互斥对象的所有权
结构名称 描述
LPSECURITY_ATTRIBUTES 安全属性结构

CreateThread

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,输出参数
返回值 线程句柄

ThreadProc

线程入口函数定义。

DWORD WINAPI ThreadProc(LPVOID lpParameter)

CreateMutex

HANDLE CreateMutex(
    LPSECURITY_ATTRIBUTES lpMutexAttributes,
    BOOL bInitialOwner,
    LPCSTR lpName
);
参数 描述
lpMutexAttributes 安全属性结构, 可设 NULL 表示默认安全性
bInitialOwner 是否立即获得该互斥对象
lpName 互斥对象的名称,字符串型,或指定为 NULL 表示匿名
返回值 互斥对象句柄

ReleaseMutex

BOOL ReleaseMutex( HANDLE hMutex );
参数 描述
hMutex 互斥对象句柄

WaitForSingleObject

DWORD WaitForSingleObject(
    HANDLE hHandle,
    DWORD dwMilliseconds
);
参数 描述
hHandle 互斥对象句柄
dwMilliseconds 等待时间(毫秒),或 INFINITE 一直等待

SECURITY_ATTRIBUTES

typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
成员 描述
nLength  
lpSecurityDescriptor  
bInheritHandle 是否继承

注:建立互斥对象成功后,如果判断非首次创建的情况

if( GetLastError() == ERROR_ALREADY_EXISTS )