zoukankan      html  css  js  c++  java
  • C# lock用法

    当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个资源进行读写的时候,我们要使该资源在同一时刻只能被一个线程操作,以确保每个操作都是有效即时的,也即保证其操作的原子性。lock是C#中最常用的同步方式,格式为lock(objectA){codeB} 。

    lock(objectA){codeB} 看似简单,实际上有三个意思,这对于适当地使用它至关重要:
    1. objectA被lock了吗?没有则由我来lock,否则一直等待,直至objectA被释放。
    2. lock以后在执行codeB的期间其他线程不能调用codeB,也不能使用objectA。
    3. 执行完codeB之后释放objectA,并且codeB可以被其他线程访问。

    private static readonly object SequenceLock = new object();
    
    public string XMethod(string params)
    {
        // ...
        lock (SequenceLock)
        {
        //互斥内容
        //...
        }
    }
  • 相关阅读:
    SLA打印机之打印机介绍
    SLA打印机之Slc文件解析
    Rayland-FDM打印机C200介绍
    Android 关机和重启
    AGVS调度系统 控制协议
    AGV 控制协议
    Android wechat 分享
    Android wechat 支付
    Android TimeoutExceptions及 wakelock
    flex 兼容性写法
  • 原文地址:https://www.cnblogs.com/wangfuyou/p/5098778.html
Copyright © 2011-2022 走看看