您的位置:主页 新闻 行业新闻

lock 关键字在c#中的用法

2019-01-17

lock 对象。主要用于处理并发问题。

目的:解决线程同步访问共享资源的问题
使用大意:lock住一个全局变量,就相当于告诉别的线程,我在使用这个全局变量,请等待。当线程推出lock的作用域时,就释放了对全局变量的锁,其他等待的线程可以访问该资源了。


lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。 
lock 语句以关键字 lock 开头,它有一个作为参数的对象,在该参数的后面还有一个一次只能由一个线程执行的代码块。例如:
C# 代码 
public void Function()
{
    System.Object lockThis = new System.Object();
    lock(lockThis)
    {
        // Access thread-sensitive resources.
    }
}


//定义共享资源

object obj=new object();

//线程函数

void threadFun()

{

   lock(obj)

   {

      //安全的访问资源

   }

}


锁住当前实例:lock(this) 
锁住此类的所有实例:lock(typeof([Type])) 
对字符串的锁,会锁定所有相同内容的字符串,建议可以用静态字符串代替 


假设你做了一个页面,上面一按钮,按了按钮以后做以下处理:
在服务器上打开文本文件,读取其中第一行的数字,+1,再写入,关闭文件。
其实就是个计数器哈。
当点的人特别多的时候,就会有上一个人的文件操作还没完成,下一个人又要打开,就会出现文件共享权限错误。
这时你定义一个static object obj;
lock(obj)
执行文件操作
因obj是static,被锁后其他线程无法访问,就会等待解锁,就不会执行文件操作,也不会出错了。、

有赞商城和淘宝的区别

2019-10-21

有很多卖家不清楚有赞商城和淘宝的有什么不同,现在对有赞商城和淘宝商城的一些区别和对比做个介绍,希望对你有帮助。1、是否自带流量有赞商城只是一个开店工具,不是流量平台(当然,有赞精选APP也是一个类似淘宝一样聚集平台,只是用户没有淘宝多而已),需要从外部引流…
MORE

快速将单品乃至店铺迅速操作起来

2019-10-21

淘宝根据店铺体量为每个品类划分了7个层级,店铺所在层级一定程度上反应了店铺经营现状和在行业位置。1-5层级的店铺属于数据运营阶段,6-7层级店铺属于数据、内容混合运营。数据运营是指,以用户为中心,数据为指标,考核店铺和产品优劣性和提升空间。数据充斥在运营的各…
MORE

店铺层级介绍

2019-10-21

1、 你的店铺层级到底是什么?怎么看?打开你的“生意参谋”,在首页的右侧边栏,你就可以看到你的店铺层级。其中淘宝是按照金额来划分层级的,天猫是按照比例划分层级的。统计的标准都是:最近30天的支付宝成交金额,只不过淘宝跟淘宝比,天猫跟天猫比。所以,你的店铺层…
MORE

扫描二维码分享到微信

在线咨询
联系电话

0311-000-0000