再看c#中的lock monitor 和mutex

1.简介

在开发项目的时候,很多时候会遇到高并发的情况,这就会用到多线程技术,必然也就会牵着到 资源的同步问题,以c#未开发语言的项目中,有下面三种解决方案,用lock关键字,使用monitor类,使用mutex类,至于这三者间的联系和区别,适用场合,相信很多人都模模糊糊的,下面我们一起学习一下吧

2.monitor方式

我们之所以选择monitor开始,是基于下面的考虑,首先我们明白的是,lock是基于monitor的,我们只有搞明白了monitor才能更好的理解lock,通过msdn或者.net framework的源码我们知道monitor是静态类,里面的成员都是静态的,我么长用到的方法和解释如下:

Enter重载方法           作用:monitor采用锁机制,这些重载方法的作用是给公用资源加上互斥锁,拿到锁之后,就执行临界区的代码,否则一直阻塞

Exit方法                      作用:释放当前线程对公用资源的互斥锁,方法调用后,其他线程或者本线程(指的是异步情况)有一个就可以给公用资源加上互斥锁了

TryEnter重载方法      作用:该方法的意思是,尝试着获取资源的互斥锁,在指定的时间内(不指定就默认无限大,阻塞)获取了就返回true执行下面的临界区代码(这个方法调用后和释放锁之间的代码都是临界区代码),否则,返回false,执行下面的代码(没有获取到锁&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值