CreateMutex用法详解

CreateMutex用法详解HANDLE nbsp CreateMutex LPSECURITY ATTRIBUTES nbsp lpMutexAttri nbsp nbsp 指向安全属性的指针 BOOL nbsp bInitialOwne nbsp nbsp 初始化互斥对象的所有者 LPCTSTR nbsp lpName nbsp nbsp 指向互斥对象名的指针 1 nbsp CreateMutex 只是创建了一把锁 nbsp nbsp 这把锁你用来锁门还是锁抽屉还是锁

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

/*通过写一个加锁的类来对共享的数据进行有效的安全控制,防止内存错误*/ 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/202622.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午11:42
下一篇 2026年3月19日 下午11:42


相关推荐

  • PHP5.6 和PHP7.0区别

    PHP5.6 和PHP7.0区别

    2021年10月15日
    41
  • insert into select 和 insert into values区别「建议收藏」

    insert into select 和 insert into values区别「建议收藏」INSERTINTOSELECT语句:从一个表复制数据,然后把数据插入到一个已存在的表中。将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECTINTO 和 INSERTINTOSELECT 表复制语句了。1.INSERTINTOSELECT语句语句形式为:InsertintoTable2(field1,…

    2022年7月15日
    28
  • 三维重建基础

    三维重建基础转载请注明出处 http blog csdn net wangyaninglm article details 来自 shiter 编写程序的艺术三维重建技术通过深度数据获取 预处理 点云配准与融合 生成表面等过程 把真实场景刻画成符合计算机逻辑表达的数学模型 这种模型可以对如文物保护 游戏开发 建筑设计 临床医学等研究起到辅助的作用 1 1 研究背景及意义人类通过双眼来探

    2026年3月17日
    2
  • PXE启动服务器及客户端镜像制作

    PXE启动服务器及客户端镜像制作基于CentOS6的PXE无盘系统制作,包含服务器端必要服务的设置开启,客户端镜像文件系统,根文件系统的制作,PXE选单的制作.

    2022年6月17日
    83
  • 调度服务 ScheduledExecutorService 经常卡顿问题的排查及解决方法

    调度服务 ScheduledExecutorService 经常卡顿问题的排查及解决方法如上述代码所示,启动10个调度线程,延迟10秒,开始执行定时逻辑,然后每隔2秒执行一次定时任务。定时任务类为`TaskWorker`,其要做的事就是根据`offset`和`rows`参数,到数据库捞取指定范围的待处理记录,然后送到`TaskService`的`processTask`方法中进行处理。从逻辑上来看,该定时没有什么毛病,但是在执行定时任务的时候,却经常出现卡顿的问题,表现出来的现象就是:**定时任务不执行了**。

    2022年5月5日
    141
  • 微信小程序+PHP 实现授权登录

    微信小程序+PHP 实现授权登录1.写wxml页面<!–前台页面,通过判断决定展示登录还是信息–><viewwx:if="{{isHide}}"><viewwx:if=

    2022年7月3日
    33

发表回复

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

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