互斥锁原理

互斥锁是一种比较简单的、用于实现线程间对资源互斥访问的机制。由于操作互斥锁 的时间和空间开销都较低,因而较适合于高频度使用的关键共享数据和程序段。互斥锁可 以有两种状态,即开锁(unlock)和关锁(lock)状态。相应地,可用两条命令(函数)对互斥锁进 行操作。其中的关锁 lock 操作用于将 mutex 关上,开锁操作 unlock 则用于打开 mutex。
当一个线程需要读/写一个共享数据段时,线程首先应为该数据段所设置的 mutex 执行 关锁命令。命令首先判别 mutex 的状态,如果它已处于关锁状态,则试图访问该数据段的 线程将被阻塞;而如果 mutex 是处于开锁状态,则将 mutex 关上后便去读/写该数据段。在 线程完成对数据的读/写后,必须再发出开锁命令将 mutex 打开,同时还须将阻塞在该互斥 锁上的一个线程唤醒,其它的线程仍被阻塞在等待 mutex 打开的队列上。

转载于:https://my.oschina.net/jlongtian/blog/983367

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值