C++使用CreateMutex

C++使用CreateMutex一 定义 HANDLECreate LPSECURITY ATTRIBUTESlp 指向安全属性的指针 BOOLbInitial 初始化互斥对象的所有者 LPCTSTRlpNam 指向互斥对象名的指针 第一个参数是一个指向 SECURITY ATTRIBUTES 结构体的指针 一般的情况下 可以是 nullptr 第二个参数类型为 BOOL 表示互斥锁创建出来后是否被当前线程持有 第三个参数类型为字符串 con

一、定义

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

第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。

第二个参数类型为BOOL,表示互斥锁创建出来后是否被当前线程持有。

第三个参数类型为字符串(const TCHAR*),是这个互斥锁的名字,如果是nullptr,则互斥锁是匿名的。

例: HANDLE hMutex = CreateMutex(nullptr, FALSE, nullptr);上面的代码创建了一个匿名的互斥锁,创建出来后,当前线程不持有这个互斥锁。

二、实例

#include <windows.h> class CLock { public: CLock() :_mutex(NULL) { this->_mutex = CreateMutex(NULL, FALSE, TEXT("_temp_mutex_lock")); } virtual ~CLock() { if (this->_mutex) { CloseHandle(this->_mutex); this->_mutex = NULL; } } CLock(const CLock& mutex) { *this = mutex; } CLock& operator=(const CLock& 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://blog.csdn.net/enterlly/article/details/

https://blog.csdn.net/xialianggang1314/article/details/

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

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

(0)
上一篇 2025年9月14日 下午1:01
下一篇 2025年9月14日 下午1:22


相关推荐

  • 如何用即梦ai做立体手办

    如何用即梦ai做立体手办

    2026年3月12日
    4
  • JavaScript常用的几种字符串方法

    JavaScript常用的几种字符串方法JavaScript 常用的几种字符串方法字符串是一种只读数据 只能查常用的几种字符串方法 1 charAt 根据指定的下标获取到对应的字符 2 charCodeAt 根据指定的下标获取到字符对应的阿斯克码 底部有 ASCII 对照表 ps 通过阿斯克码获取到字符 3 substring 截取字符串 4 substr 截取字符串 5 slice 截取字符串 6 indexOf 查找字符 子字符串在大字符串中第一次出现的位置 找到了返回下标 找不到返回 1 7 la

    2026年3月20日
    2
  • wireshark网络安全分析工具之万文多图详解(持续更新)[通俗易懂]

    wireshark网络安全分析工具之万文多图详解(持续更新)[通俗易懂]1.基本介绍2.下载与安装3.详细教程3.1软件界面介绍3.1.1菜单栏3.1.2工具栏3.1.3数据包列表区3.1.4数据包详细区3.1.5数据包字节区3.2Wireshark过滤器3.2.1捕获过滤器3.2.2显示过滤器3.3过滤规则3.3.1语法讲解3.3.2过滤实例4.实战案例

    2022年6月21日
    27
  • windows下如何安装git及配置环境_git安装失败

    windows下如何安装git及配置环境_git安装失败下载安装1.从git官网下载一个git安装包,官网下载地址http://www.git-scm.com/download/2.双击安装程序(如果没有SecurityWarning请跳过此步骤),请点击【Run&gt;】3.阅读协议,点击【Next&gt;】4.选择安装位置,点击【Next&gt;】5.选择安装组件:这里可以使用默认选项,点击【Next…

    2025年10月2日
    7
  • json 转list 集合

    json 转list 集合好久没写博客了 虽然写的一塌糊涂吧 但也得坚持 今天遇到 json 转 list 集合的问题 随便就记一下 importnet sf json JSONArray importnet sf json JSONObject pom xml 文件 lt json 依赖 gt lt dependency gt amp l

    2025年9月3日
    4
  • final、权限、内部类

    final、权限、内部类

    2021年5月19日
    120

发表回复

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

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