createmutex怎么用_create的用法和短语

createmutex怎么用_create的用法和短语HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针BOOL bInitialOwner, // 初始化互斥对象的所有者LPCTSTR lpName // 指向互斥对象名的指针);1. CreateMutex只是创建了一把锁,  这把锁你用来锁门还是锁抽屉还是锁

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

1.  CreateMutex只是创建了一把锁,  这把锁你用来锁门还是锁抽屉还是锁你对象的内裤都由你自己决定。
2. lpName是指定这把锁的名字.  你要不给这把锁取个名字都可以.  只是有了相同的名字, 在跨进程加锁的时候, 就可以得到同一把锁。
3. HANDLE m_hMutex = CreateMutex(NULL,TRUE,”cplusplus_me”);   只是创建了一把锁, 到目前这句完成, 他没有锁任何东西。

//加锁
WaitForSingleObject(hMutex, INFINITE);  //还有其它函数可用, 详见MSDN中说明

//这里写被加锁的东西.  一般是操作一些共享数据(占用系统内存)。

//解锁
ReleaseMutex(hMutex);

/*通过写一个加锁的类来对共享的数据进行有效的安全控制,防止内存错误*/
class MTCMutex
{
public:
MTCMutex() :_mutex(NULL)
{
this->_mutex = CreateMutex(NULL, FALSE, NULL);
}
virtual ~MTCMutex()
{
if (this->_mutex)
{
CloseHandle(this->_mutex);
this->_mutex = NULL;
}
}
MTCMutex(const MTCMutex& mutex){ *this = mutex; }
MTCMutex& operator=(const MTCMutex& other)
{
if (this != &other)
{
this->_mutex = other._mutex;
}
return *this;
}
private:
HANDLE _mutex;


public:
void Lock()
{
WaitForSingleObject(this->_mutex, INFINITE);
}


void UnLock()
{
ReleaseMutex(this->_mutex);
}
};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185732.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 电源符号:VCC、VDD、VEE、VSS、VBAT各表示什么意思?

    电源符号:VCC、VDD、VEE、VSS、VBAT各表示什么意思?下面是stm32vet6的引脚图:电路设计以及PCB制作中,经常碰见电源符号:VCC、VDD、VEE、VSS、VBAT,他们具有什么样的关系那?  一、解释  (1)VCC:C=circuit表示电路的意思,即接入电路的电压  (2)VDD:D=device表示器件的意思,即器件内部的工作电压;  (3)VSS:S=series表示公共连接的意思,通常指电路公共接地…

    2022年5月5日
    78
  • html静态页面代码_静态网页设计代码

    html静态页面代码_静态网页设计代码这个例子我们做一个游戏静态页面,自动跳转到我们想要玩的游戏或者视频等网站大家也可以根绝我的代码,适当修改一些信息,但是套用我的这个模板请注释下来自我这,我也是初学者,辛辛苦苦写了几个小时,尊重下劳动成果先看效果图:我以张杰为背景图,里面是各种网站跳转,比如我点击:冰火人,他就会跳转到4399的冰火人游戏界面。ok,上代码,我觉得比较简单,就没注释,希望能看懂:<!DOCTYPEhtml><html><headlang=”en”><metacha

    2022年9月23日
    1
  • java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]

    java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]Java框架在Java开发中的作用是毋庸置疑的。那么Java常用框架有哪些?大概包括:Hibernate、Spring、Struts、jQuery、Redis五种。这些框架有什么用呢?Java常用框架提供了一些现成的机制,在团队开发中简化开发难度。下面就来具体介绍一下Java常用的五大框架。1、HibernateHIbernate是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库…

    2022年7月7日
    21
  • DropDownList1_SelectedIndexChanged-的使用

    DropDownList1_SelectedIndexChanged-的使用怎样使当DropDownList1改变时也改变相应的DropDownList2的值?实现二级联动。如省市联动啊。以下有代码。将DropDownList1的AutoPostBack属性设为true导入命名空间ImportsSystem.DataImportsSystem.Data.SqlClientPrivateSubPage_Load(ByValsen

    2022年7月18日
    12
  • ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate

    ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate

    2022年2月10日
    42
  • 第一范式、第二范式和第三范式「建议收藏」

    第一范式、第二范式和第三范式「建议收藏」数据库的范式概念:设计数据库是,需要遵循的一些规范,要遵循后边的范式要求,必须遵循前边的所有范式要求设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈梯次规范,越高的范式数据库冗余越小目前关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式、第四范式(4NF)、第五范式(5NF)。…

    2022年5月23日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号