1.volatile 关键字
volatile 关键字可应用于以下类型的字段:
-
引用类型。
-
指针类型(在不安全的上下文中)。请注意,虽然指针本身可以是可变的,但是它指向的对象不能是可变的。换句话说,您无法声明“指向可变对象的指针”。
-
整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。
-
具有整数基类型的枚举类型。
-
已知为引用类型的泛型类型参数。
可变关键字仅可应用于类或结构字段。不能将局部变量声明为 volatile。
二、lock关键字
它是通过为给定对象获取互斥锁来实现同步的可以保证同一时间子能有一个线程能方位代码块
lock的参数必须是基于引用类型的对象 一般情况下使用object 代替
lock 参数不用使用this
三、System.Threading.Interlocked
对于整数数据类型的简单操作,可以用 Interlocked 类的成员来实现线程同步
四、Monitor
了解lock 就可以了
五、Mutex
六、ReaderWriterLock
简单读取数据
七、SynchronizationAttribute
能够确定在同一时间子有一个线程访问的时候可以使用
在类的声明中,添加System.Runtime.Remoting.Contexts.SynchronizationAttribute属性
此类继承至System.ContextBoundObject