1.简介
在开发项目的时候,很多时候会遇到高并发的情况,这就会用到多线程技术,必然也就会牵着到 资源的同步问题,以c#未开发语言的项目中,有下面三种解决方案,用lock关键字,使用monitor类,使用mutex类,至于这三者间的联系和区别,适用场合,相信很多人都模模糊糊的,下面我们一起学习一下吧
2.monitor方式
我们之所以选择monitor开始,是基于下面的考虑,首先我们明白的是,lock是基于monitor的,我们只有搞明白了monitor才能更好的理解lock,通过msdn或者.net framework的源码我们知道monitor是静态类,里面的成员都是静态的,我么长用到的方法和解释如下:
Enter重载方法 作用:monitor采用锁机制,这些重载方法的作用是给公用资源加上互斥锁,拿到锁之后,就执行临界区的代码,否则一直阻塞
Exit方法 作用:释放当前线程对公用资源的互斥锁,方法调用后,其他线程或者本线程(指的是异步情况)有一个就可以给公用资源加上互斥锁了
TryEnter重载方法 作用:该方法的意思是,尝试着获取资源的互斥锁,在指定的时间内(不指定就默认无限大,阻塞)获取了就返回true执行下面的临界区代码(这个方法调用后和释放锁之间的代码都是临界区代码),否则,返回false,执行下面的代码(没有获取到锁&#