概述
C#的lock用法
简单来说就是锁住一个内容
在当前内容触发“锁”的时候,其他进程不能调用该内容,防止发生抢占
使用线程锁lock的时候,不会出现两个线程抢占执行函数的情况
有时候就会出现需要调用多线程来同时访问同一个函数的情况,为了保证该函数顺利执行完毕后再重新执行(而不是函数执行到一半时,另一个线程又开始执行函数)
,就需要用到lock
例:
//有锁:
public static void A()
{
lock (o)
{
Console.WriteLine("A1");
Thread.Sleep(500);
Console.WriteLine("A2");
Thread.Sleep(500);
Console.WriteLine("A3");
}
}
static void Main()
{
Thread thread1 = new Thread(A);
Thread thread2 = new Thread(A);
thread1.Start();
thread2.Start();
}
带lock输出内容为:
//无锁:
public static void B()
{
Console.WriteLine("B1");
Thread.Sleep(500);
Console.WriteLine("B2");
Thread.Sleep(500);
Console.WriteLine("B3");
}
static void Main()
{
Thread thread3 = new Thread(B);
Thread thread4 = new Thread(B);
thread3.Start();
thread4.Start();
}
不带lock输出内容为:
类似参考:C#lock语句用法(lock到底有什么用?)
最后
以上就是外向大神为你收集整理的C#的lock用法的全部内容,希望文章能够帮你解决C#的lock用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复