日期:2014-05-18  浏览次数:20588 次

synclock的用法不太理解,谁能给演示一下,加锁和不加锁的区别。
msdn上的解释,大家就不要贴了。

现在在维护一个项目,里面很多代码处都写上了syncLock代码块,但琢磨不明白它要干嘛。。。

msdn上没找到,加锁和不加锁的区别的代码例子。
哪位大侠能给段代码演示下,加锁和不加锁的区别。


------解决方案--------------------
lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。
lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。
如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。

demo:
C# code

private readonly static _lock = new object();


void method1(){
//每个线程进来都可以执行下面的代码
//xxx,yyyzzz
}

void method1(){
如果已经有一个线程在执行lock内的代码,其他线程就进不去了
lock(_lock){
//xxx,yyyzzz
}
}