zoukankan      html  css  js  c++  java
  • lock的等效代码

    1.lock的等效代码

      在.NET的多线程程序中,经常会遇到lock关键字来控制同步,比如下列代码:

    private object o = new object();

    public void Work()

    {

      lock(o)

      {

        //做一些需要线程同步的工作

      }

    }

      事实上,lock这个关键字是C#为方便程序员而定义的语法,它等效于安全地使用System.Threading.Monitor类型。上面的代码就直接等效于下面的代码:

    private object o = new object();

    public void Work()

    {

      //这里很重要,是为了避免直接使用私有成员o,而导致线程不安全

      object temp = o;

      System.Threading.Monitor.Enter(temp);

      try

      {

        //做一些需要线程同步的工作

      }

      finally

      {

        System.Threading.Monitor.Exit(temp);

      }

    }

  • 相关阅读:
    Vue(知识讲解)
    爬虫框架:scrapy
    爬虫性能相关
    MongoDB
    Beautifulsoup模块
    selenium模块
    requests模块
    爬虫(集锦)
    爬虫目录
    Flask目录
  • 原文地址:https://www.cnblogs.com/yy1234/p/11344043.html
Copyright © 2011-2022 走看看