zoukankan      html  css  js  c++  java
  • C#_关键字:Lock的解释和使用

    定义

      lock关键字,互斥锁,通过锁住某一对象从而将语句块({})里面的代码设置为临界区。 

      线程在线性执行代码时若遇到互斥锁,必须先申请互斥锁的访问权,若访问成功,则继续线性访问互斥锁后的临界区代码块。声明如下:  

    1 Object thisLock = new Object();
    2 lock (thisLock)
    3 {
    4     // Critical code section.
    5 }

      lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。 如果其他线程尝试进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。

    使用

    •   锁定的对象

      锁定的对象不能是Public类型,或者 lock (this)、lock (typeof (MyType)) 和 lock ("myLock") 使用都是不符合规范。

      Lock的对象只有在非外部访问的情况下才不会对外部的线程代码产生影响。由于lock (this)、lock (typeof (MyType)) 和 lock ("myLock")中的this,typeof(MyType)有可能被外部访问,外部代码若存在与"myLock"相同的字符串,这些对象都会被锁住,对进程代码产生不可预测的影响。故而建议使用Private对象作为锁的对象。

  • 相关阅读:
    GDI编程之 Bitmap
    HTML颜色(zz)
    JavaScript Object Notation (JSON)
    Windowless mode for Silverlight
    java不支持泛型数组!!!
    javafx2gametutorial
    匿名内部类的初始化
    struts2 if标签和枚举比较
    Hibernate基于注解方式的各种映射全面总结
    编译jxsesrc2.5源代码缺少的文件
  • 原文地址:https://www.cnblogs.com/qi123/p/8992170.html
Copyright © 2011-2022 走看看