Crazy_Challenger

导航

 

一、介绍

原型
HANDLE CreateMutex(
LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针
BOOL bInitialOwner, // 初始化互斥对象的所有者
LPCTSTR lpName // 指向互斥对象名的指针
);

Windows API
二、功能

创建一个互斥器,互斥器的名字由 lpName 决定。该名字不要随意,要有独特性,因为跨进程加锁时识别互斥器的方法就是靠该名字。
lpMutexAttributes : 第一个参数表示安全控制,一般直接传入NULL。
bInitialOwner
(1)若为TRUE,互斥器对象内部会记录创建它的线程的线程ID号并将递归计数设置为1,由于该线程ID非零,所以互斥器处于未触发状态,表示互斥器为创建线程拥有,此时Mutex的状态是无信号的,其他线程中的WaitForSingleObject都将堵塞。
(2)若为FALSE,那么互斥量对象内部的线程ID号将设置为NULL,递归计数设置为0,这意味互斥器不为任何线程占用,处于触发状态。
也就是说,只有当递归计数为0时,该互斥器才属于触发状态,即:解锁。
创建成功,则返回互斥器的句柄,否则返回0。

posted on 2019-07-08 09:19  Crazy_Challenger  阅读(1136)  评论(0编辑  收藏  举报