C#_关键字:Lock的解释和使用
2021-04-12 23:25
标签:res 情况下 data his 合规 not data- style hover lock关键字,互斥锁,通过锁住某一对象从而将语句块({})里面的代码设置为临界区。 线程在线性执行代码时若遇到互斥锁,必须先申请互斥锁的访问权,若访问成功,则继续线性访问互斥锁后的临界区代码块。声明如下: lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。 如果其他线程尝试进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。 锁定的对象不能是Public类型,或者 lock (this)、lock (typeof (MyType)) 和 lock ("myLock") 使用都是不符合规范。 Lock的对象只有在非外部访问的情况下才不会对外部的线程代码产生影响。由于lock (this)、lock (typeof (MyType)) 和 lock ("myLock")中的this,typeof(MyType)有可能被外部访问,外部代码若存在与"myLock"相同的字符串,这些对象都会被锁住,对进程代码产生不可预测的影响。故而建议使用Private对象作为锁的对象。 C#_关键字:Lock的解释和使用 标签:res 情况下 data his 合规 not data- style hover 原文地址:https://www.cnblogs.com/qi123/p/8992170.html定义
1 Object thisLock = new Object();
2 lock (thisLock)
3 {
4 // Critical code section.
5 }
使用
锁定的对象