CreateMutex详解–转

CreateMutex详解–转一、介绍原型HANDLECreateMutex(LPSECURITY_ATTRIBUTESlpMutexAttributes,//指向安全属性的指针BOOLbInitialOwner

大家好,又见面了,我是你们的朋友全栈君。

一、介绍

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

Windows API
二、功能

创建一个互斥器,互斥器的名字由 lpName 决定。该名字不要随意,要有独特性,因为跨进程加锁时识别互斥器的方法就是靠该名字。
lpMutexAttributes : 第一个参数表示安全控制,一般直接传入NULL。
bInitialOwner
(1)若为TRUE,互斥器对象内部会记录创建它的线程的线程ID号并将递归计数设置为1,由于该线程ID非零,所以互斥器处于未触发状态,表示互斥器为创建线程拥有,此时Mutex的状态是无信号的,其他线程中的WaitForSingleObject都将堵塞。
(2)若为FALSE,那么互斥量对象内部的线程ID号将设置为NULL,递归计数设置为0,这意味互斥器不为任何线程占用,处于触发状态。
也就是说,只有当递归计数为0时,该互斥器才属于触发状态,即:解锁。
创建成功,则返回互斥器的句柄,否则返回0。

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

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

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


相关推荐

  • zip文件加密的几种破解方法

    zip文件加密的几种破解方法一、使用ZipCenOp.jar(需要java环境),在cmd中使用java-jarZipCenOp.jarrxxx.zip成功后压缩包可以直接打开ZipCenOp.jar链接:https://pan.baidu.com/s/1e0Ni2OjxmYEdOY7gGbv6gg提取码:29qi二、使用winRAR进入工具,压缩修复文件,修复完后压缩包就可以打开了上述两种…

    2022年6月1日
    292
  • jzoj 1146. 危险系数(acrobat)

    jzoj 1146. 危险系数(acrobat)1146.危险系数(acrobat) (FileIO): input:acrobat.in output:acrobat.out时间限制: 1000ms  空间限制: 262144KB  具体限制  GotoProblemSet题目描述   N(1输入第一行:输入一个整数N;第2到

    2022年6月11日
    38
  • linux用命令dpkg,Linux中的dpkg命令介绍

    linux用命令dpkg,Linux中的dpkg命令介绍导读dpkg是一个安装、构建、删除和管理Debian包的工具。所有源自“Debian”的linux的发行版都可使用dpkg命令,比如Ubuntu。语法:dpkg(选项)(参数)选项:-i:安装软件包-r:删除软件包-P:删除软件包的同时删除其配置文件-L:显示于软件包关联的文件–unpack:解开软件包-c:显示软件包内文件列表-configure:配置软件包参数:deb软件包列出deb软件包的…

    2022年5月20日
    26
  • oracle11g安装图解「建议收藏」

    oracle11g安装图解「建议收藏」Oracle11g安装:**一、软件需求安装CentOS6.5的服务器一台Oracle11g安装介质:linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip命令行客户端工具xshell、crt或者putty图形界面客户端工具Xming二、系统配置检查1.内存检查SSHSecureShell的命令行窗口,执行[root@localhost~]#grepMemTotal/proc/meminfoM

    2022年9月21日
    0
  • Java BigDecimal加减乘除运算[通俗易懂]

    Java BigDecimal加减乘除运算[通俗易懂]效果:代码:/****/packagecom.example.demo;importjava.math.BigDecimal;/****<p>*Description:*</p>**@authorxuyangwei**@date2020年7月16日**/publicclassBigdecimalTest{ publicstaticvoidmain(String[]ar

    2022年5月5日
    76
  • DDL和DML的区别

    DML(DataManipulationLanguage)数据操纵语言:适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等. DDL(DataDefinitionLanguage)数据定义语言:适用范围:对数据库中的某些对象(例如,database,table)进行管理,如create、alter、drop、TRUNCATE、show等 …

    2022年4月6日
    73

发表回复

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

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