Outline
atomic是确保操作的数据是原子性,在多线程操作确保数据的准确性,单次要么成功,要么失败。
支持的数据类型有int32,uint32,int64,uint64,uintptr,unsafe.Pointer。
其中每一种类型支持的操作有: Add 添加 Swap 交换 CompareAndSwap 对比交换 Store 保存 Load 载入
important point
其中Store和Load操作不是并发的操作。
单次操作是Store 或者Load时是原子性操作,也就是说连续使用Store和Load时,无法保证读Load取到数据就是Store进去的值.
Load 只保证读取的不是正在写入的值,Store只保证写入是原子操作。