-
c#多线程之间的排他锁的实现
我们很多时候会碰到这样的问题,使用多线程刷一个表的数据时需要多个线程不能重复提取数据,那么这个时候就需要使用到线程的排他锁了,本文就详细的介绍一下
我们很多时候会碰到这样的问题,使用多线程刷一个表的数据时需要多个线程不能重复提取数据,那么这个时候就需要使用到线程的排他锁了。
在c#里面其实很简单,下面先来看一个简单的小例子
1 2 3 4 5 6 7 8 |
|
如果这个时候我们开启多个线程
代码如下
1 2 3 4 5 6 7 8 9 10 11 |
|
那么这100个线程获取的数据可能大部分是重复的
怎么样解决这个问题呢,两种写法
第一种写法使用this
1 2 3 4 5 6 7 8 9 |
|
这种写法当线程执行到这一步时所有线程都会停止执行,等待执行完成
我们再来看第二种
1 2 3 4 5 6 7 8 9 10 11 |
|
这种写法只会锁死这个方法,
同时只会有一个线程能执行这个方法
大家可以根据自己的需求来使用
到此这篇关于c#多线程之间的排他锁的实现的文章就介绍到这了
原文:https://www.jb51.net/article/219988.htm