Lock语句
lock语句获取给定对象的互斥lock,执行语句块,然后释放lock,持有lock时,持有lock的线程可以再次获取并释放lock,阻止任何其他线程获取lock并等待释放lock
为什么需要锁
在遇到线程同步的需求时最常用的就是lock’关键字,lock的目的就是只允许当前线程执行该代码区域,其他线程等待该线程执行结束后再执行,避免了数据紊乱
Lock的等效代码
。
private static readonly object lockobj = new object();
public void Work()
{
lock(lockobj)
{
//做一些需要线程同步的工作
}
}
Lock一般的都是对象,并非值类型/字符串