线程安全问题:

 

 

 

 

 

 

 

 lock的变量是引用类型,与线程操作无关,仅仅起一个标志位的作用,标志该内存是否正在被操作(不允许其他线程进行操作)

若两个线程锁同一个引用变量则不能并发,否之则能并发。

微软官方推荐

private static readonly object LOCK = new object();

 

 

 

 

lock原理:

 lock(o)

{

          代码块

}

 相当于给代码块加了一个状态标志,如果标志位o是释放的则可以执行代码块,如果o是锁住的则需等待o变为释放状态才可以执行代码块,

并不是锁住代码块所访问的内存!!!

 

 

 

 

 

1

 

posted on 2020-08-03 16:54  Manuel  阅读(98)  评论(0编辑  收藏  举报