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


相关推荐

  • HTTP协议

    当你在浏览器地址栏敲入“http://www.cnblogs.com/”,然后猛按回车,呈现在你面前的,将是博客园的首页了(这真是废话,你会认为这是理所当然的)。作为一个开发者,尤其是web开发人员,

    2022年3月29日
    49
  • 列举出linux文件和目录常用的命令_cat -n file1file2 命令的意思是

    列举出linux文件和目录常用的命令_cat -n file1file2 命令的意思是目录命令总览ls(英文全拼:listfiles):列出目录及文件名cd(英文全拼:changedirectory):切换目录pwd(英文全拼:printworkdirectory):显

    2022年7月28日
    25
  • 安卓手机上超好用的4款C语言IDE(附下载地址)

    安卓手机上超好用的4款C语言IDE(附下载地址)**如果找不到这几款编译器的可以联系我,我发给你QQ:1873564884**电脑有时太麻烦,不方便随时运行测试结果,手机上有不少编译器,子曰:“工欲善其事,必先利其器”。拥有一款好的编译器也是成功的一部分。话不多说让我们来看看。1:C4droid汉化版这款相信大家一定听说过,毕竟我原来也用过,感觉很菜,点击编译后没反应,上网查找说要安装gcc插件,而且要自己要自己找安装目…

    2022年5月6日
    153
  • vs 安装包_vs离线安装包

    vs 安装包_vs离线安装包VS安装包注册com组件VS安装包注册com组件1.把你的com组件加入到打包程序。 2.在打包程序中找到该com组件,点击属性。在属性中有Register项,把值选择为vsdrfCOM即可。

    2022年10月13日
    1
  • 每一趟安心出行的背后,都有哪些黑科技?

    每一趟安心出行的背后,都有哪些黑科技?导读:寄托着满当当期待与希望的20年代第一个新年,让一场态势凶猛的新型冠状病毒压抑的连呼吸都变得艰难。但不同的是,这一次,我们共同的努力,都会让社会好得…

    2022年6月2日
    49
  • 通过反射获取实例化

    通过反射获取实例化IMyServlet接口packagecn.itheima.web.servlet;publicinterfaceIMyServlet{publicvoidinit();publicvoidservice();publicvoiddestory();}接口的实现packagecn.itheima.web.servlet;publicclassMy

    2022年7月12日
    18

发表回复

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

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