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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux默认安装路径在哪里_linux进入根目录命令

    linux默认安装路径在哪里_linux进入根目录命令Nginx安装安装路径 /usr/local/nginx配置文件 /usr/local/nginx/conf/nginx.conf启动:进入到/usr/local/nginx/sbin下,./nginx关闭:进入到/usr/local/nginx/sbin下 ./nginx -s stop 重启:同上, -s reload停止 kill -9 线程号查看 ps -ef|grep nginxhttps://www.jianshu.com/p/9f2c162ac77c 可参考安装ng

    2022年8月19日
    6
  • 开机后弹出女神联盟广告_diagnosticservicehost无法启动

    开机后弹出女神联盟广告_diagnosticservicehost无法启动解决WINXP系统开机后弹出Generichostprocessforwin32services遇到问题需要关闭!出现上面这个错误一般有三种情况。1.就是病毒。开机后会提示GenericHostProcessforWin32Services遇到问题需要关闭”“RemoteRrocedureCall(RPC)服务意外终止,然后就自动重起电脑。一般该病毒会…

    2022年10月12日
    3
  • Java静态变量存储在内存中的什么位置?「建议收藏」

    Java静态变量存储在内存中的什么位置?「建议收藏」静态成员变量存储在堆的永久生成区域中。这是因为static不属于对象而是属于类,所以它被认为是类定义的一部分。如果静态变量是基元类型,它们将存储在permGen中。如果静态变量是一个引用变量,例如staticPersonobj=newPerson(),那么reference变量obj将被存储在permGen中,新创建的objected将被放置在年轻一代中。…

    2022年6月12日
    64
  • asp.net(c#)网页跳转几种方法小结「建议收藏」

    asp.net(c#)网页跳转几种方法小结「建议收藏」在asp.net下,经常需要页面的跳转,下面是具体的几种方法。跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于.net中response.redirectsever.executeserver.transfer三种页面跳转的方法①response.redirect这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳转到任何页面,没有站点页

    2022年7月20日
    17
  • Harris角点学习[通俗易懂]

    Harris角点学习[通俗易懂]人们普遍认为角点是二维图像亮度变化剧烈的点或图像边缘曲线上曲率极大值的点。这些点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。其在三维场景重建、运动估计、目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着非常重要的作用。  角点的检测主要有两类基于图像边缘的方法和基于图像灰度的方法。前者很

    2022年9月25日
    4
  • Android Studio入门级教程(详细)【小白必看】[通俗易懂]

    Android Studio入门级教程(详细)【小白必看】[通俗易懂]AndroidStudio如何使用之前的文章已经讲解了AndroidStudio的安装和配置过程请参考:本文主要讲解一下AndroidStudio使用方法步骤:1.建立项目首先点击new——newproject新建项目选择想要创建的Android的模板,建议选择emptyactivity(空模板),然后nextName:给你的项目起一个名字API…

    2022年5月29日
    48

发表回复

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

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