有两种用户模式线程同步构造:易失构造和互锁构造,他们在包含一个简单数据类型的变量上执行原子性的读或写操作。都要求传递对“包含一个简单数据类型的一个变量”的引用(内存地址)。有的CPU架构要求对这个内存地址正确对齐,否则抛出一个异常。
volatile关键字告诉C#和jit编译器不将字段幻刺到CPU寄存器中,确保所有字段所有读写操作都在RAM中。