Load

atomic-load.png

load 操作由两个部分组成,对 typ 使用 LoadPointer 和 对 data 使用 LoadPointer。

这两个操作结合在一起还能保证 Load 是原子的吗?
实际需要的数据只是 data,在 store 中已经规定了 type 一旦确定了就不可以更改,所以我们只需要保证 LoadPointer(&date) 是原子的就已经可以了

Store

atomic-store.png

Store 最重要的点就是保证 Type 在第一次赋值时就不能变化,所以首先需要获取 Type 的值,进行检查。