穆桂英

 

Lock和Static使用说明和区别

private static object lockInsertObj = new object();

lock (lockInsertObj){--写代码}

1、静态方法与非静态方法

a、静态方法的调用
类.静态方法名([参数列表])

非静态方法的调用
类 对象 = new 类的构造函数([参数列表])
对象.非静态方法名([参数列表])

静态方法是属于类的,而非静态方法是属于对象的;

b、内存的初始化
静态成员是在第一次使用时进行初始化。非静态的成员是在创建对象的时候。
静态构造函数只能被执行一次;非静态的构造函数可以根据需要进行多次使用。

c、内存中存储
静态的只有一块全局内存空间,非静态的可以有多块内存空间(副本)

d、释放
静态的一旦创建则在全局区一直存放,直到应用程序结束。非静态的则是由new关键字在堆中创建的。可以有多个副本。由GC进行释放。

所以根据以上解释

加上static,类只有一个,一个内存空间,lock起到作用

不加static,则new创建了多个实例,lock是执行的是多个类,多个不同的内存空间,不起作用了

 

posted on 2018-08-14 17:28  穆桂英  阅读(1004)  评论(0)    收藏  举报

导航