再看c#中的lock monitor 和mutex

本文详细介绍了C#中用于资源同步的lock、monitor和mutex,探讨了它们之间的联系、区别以及适用场景。通过分析,读者将更好地理解多线程环境下如何实现资源的互斥访问。示例代码展示了lock与monitor的等价用法,以及mutex的简单应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简介

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

2.monitor方式

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值