首页 > 编程语言 > 详细

[线程同步互斥]互斥量Mutex

时间:2015-10-05 01:52:13      阅读:302      评论:0      收藏:0      [点我收藏+]

互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。使用互斥量Mutex主要将用到四个函数。下面是这些函数的原型和使用说明。

第一个 CreateMutex
函数功能:创建互斥量(注意与事件Event的创建函数对比)
函数原型:
HANDLECreateMutex(
  LPSECURITY_ATTRIBUTESlpMutexAttributes,
  BOOLbInitialOwner,     
  LPCTSTRlpName
);
函数说明:
第一个参数表示安全控制,一般直接传入NULL。
第二个参数用来确定互斥量的初始拥有者。
如果传入TRUE表示互斥量对象内部会记录创建它的线程的线程ID号并将递归计数设置为1,
由于该线程ID非零,所以互斥量处于未触发状态。
如果传入FALSE,那么互斥量对象内部的线程ID号将设置为NULL,递归计数设置为0,
这意味互斥量不为任何线程占用,处于触发状态。
第三个参数用来设置互斥量的名称,在多个进程中的线程就是通过名称来确保它们访问的是同一个互斥量。
函数访问值:
成功返回一个表示互斥量的句柄,失败返回NULL。

注意区分触发状态和非触发状态:触发状态就是线程不会在这里阻塞,或者由原来的不可用变为了可用,去唤醒等待的线程。

[线程同步互斥]互斥量Mutex

原文:http://www.cnblogs.com/stemon/p/4855265.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!