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}}