当前位置: 首页 > news >正文

余姚做企业网站可以在线做动图的网站

余姚做企业网站,可以在线做动图的网站,山西怀仁建设银行,网页设计教学视频免费CreateMutex函数 正常情况下,一个进程的运行一般是不会影响到其他正在运行的进程的。但是对于某些有特殊要求的如以独占方式使用串行口等硬件设备的程序就要求在其进程运行期间不允许其他试图使用此端口设备的程序运行的,而且此类程序通常也不允许运行同…

CreateMutex函数

正常情况下,一个进程的运行一般是不会影响到其他正在运行的进程的。但是对于某些有特殊要求的如以独占方式使用串行口等硬件设备的程序就要求在其进程运行期间不允许其他试图使用此端口设备的程序运行的,而且此类程序通常也不允许运行同一个程序的多个实例。这就引出了进程互斥的问题。

  实现进程互斥的核心思想比较简单:进程在启动时首先检查当前系统是否已经存在有此进程的实例,如果没有,进程将成功创建并设置标识实例已经存在的标记。此后再创建进程时将会通过该标记而知晓其实例已经存在,从而保证进程在系统中只能存在一个实例。具体可以采取内存映射文件、有名事件量、有名互斥量以及全局共享变量等多种方法来实现。下面就分别对其中具有代表性的有名互斥量和全局共享变量这两种方法进行介绍: // 创建互斥量
HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Sample07");
// 检查错误代码
if (GetLastError() == ERROR_ALREADY_EXISTS) {
 // 如果已有互斥量存在则释放句柄并复位互斥量
 CloseHandle(m_hMutex);
 m_hMutex = NULL;
 // 程序退出
 return FALSE;
}

  上面这段代码演示了有名互斥量在进程互斥中的用法。代码的核心是CreateMutex()对有名互斥量的创建。CreateMutex()函数可用来创建一个有名或无名的互斥量对象,其函数原型为:

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

  如果函数成功执行,将返回一个互斥量对象的句柄。如果在CreateMutex()执行前已经存在有相同名字的互斥量,函数将返回这个已经存在互斥量的句柄,并且可以通过GetLastError()得到错误代码ERROR_ALREADY_EXIST。可见,通过对错误代码ERROR_ALREADY_EXIST的检测可以实现CreateMutex()对进程的互斥。

建立互斥体,用来同步。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。  
    参数  
    lpMutexAttributes    
    指向一个SECURITY_ATTRIBUTES结构的指针,这个结构决定互斥体句柄是否被子进程继承。     
    bInitialOwner
    布尔类型,决定互斥体的创建者是否为拥有者  
    lpName    
    指向互斥体名字字符串的指针。互斥体可以有名字。  
    互斥体的好处是可以在进程间共享

个人心得体会:
CreateMutex() 用于有独占要求的程序 (在其进程运行期间不允许其他使用此端口设备的程序运行,或不允许同名程序运行)。
如有同名程序运行,则通过 GetLastError()得到错误代码 ERROR_ALREADY_EXIST

刚才又执行了下得出的结果(程序名samp)
         一般情况下:一进入调试阶段,进程管理器中就出现了samp进程,执行到CreateMutex时返回进程句柄,执行到if(GetLastError() == ERROR_ALREADY_EXISTS ) 进行判断时,跳过不执行if中的内容,所以表示没有互斥。
     调试之前先运行debug中的samp.exe再调试:一进入调试阶段,进程管理器中就出现了两个samp进程,执行到CreateMutex时返回进程句柄,执行到if(GetLastError() == ERROR_ALREADY_EXISTS ) 进行判断时,执行if中的内容,表示有互斥。

http://www.yayakq.cn/news/813429/

相关文章:

  • 网站开发和数据库的关系从化在哪里建设网站的
  • 网店设计与装修云南seo简单整站优化
  • 编程网站入门中国今天最新军事新闻
  • 购物网站建设的意义与目的百度提交网站改版
  • 宣汉县建设局网站用美图秀秀做网站图片
  • 户外做旅游网站wordpress缓存单个页面
  • 自动做微网站发光字体制作网站
  • 小白学做搭建网站租空间开网站
  • 专业网站优化排名郑州网站建设专业公司
  • 受欢迎的郑州网站建设网站吗
  • 西安网站建设哪家专业自贡住房和城乡建设厅网站
  • 纯静态单页网站wordpress定制
  • 网站建设创始人网站设计开题报告范文
  • 长沙网站制作作中国制造网官方网站入口网址
  • 网站建设和网页设计的区别脚底长了像水泡一样的东西很痒怎么回事
  • 湘潭网站建设定制磐石网络南京制作网页公司
  • 哪个网站建站好500平台国际国内时事
  • 利用网站空间做代理网站形式的具体例子
  • 医疗网站优化公司微信如何申请小程序
  • 如何做网站跳转登入中介app开发制作公司
  • 厦门市建设厅网站wordpress好用的富文本编辑器
  • 可以制作网站的软件上海建设工程招投标网站
  • 国内使用vue做的网站软件系统开发流程图
  • 苏州企业网站设计制作福州网站关键词推广
  • 中国建设劳动学会官方网站是多少重庆网站建站
  • 建立音乐网站大连免费网站制作
  • 免费聊天网站模板和源码国内权重网站排名
  • 阿里云网站如何建设视频网站开发 北京
  • 网站开发维护的好处房地产建设网站的意义
  • 网站建设需不需要招标wordpress过去指定分类文章