
# 开发指导
#### 使用场景
有多个任务对同一个内存数据进行加减或交换操作时，使用原子操作保证结果的可预知性。
#### 功能
Huawei LiteOS的原子数据包含两种类型Atomic（有符号32位数）与 Atomic64（有符号64位数）。原子操作模块为用户提供下面几种功能，接口详细信息可以查看API参考。
表1Atomic原子操作功能列表 
| 功能分类 | 接口名                     | 描述                     |
|:---|:---|:---|
| 读    | LOS_AtomicRead          | 读取内存数据                 |
| 写    | LOS_AtomicSet           | 写入内存数据                 |
| 加    | LOS_AtomicAdd           | 对内存数据做加法               |
| 加    | LOS_AtomicSub           | 对内存数据做减法               |
| 加    | LOS_AtomicInc           | 对内存数据加1                |
| 加    | LOS_AtomicIncRet        | 对内存数据加1并返回运算结果         |
| 减    | LOS_AtomicDec           | 对内存数据减1                |
| 减    | LOS_AtomicDecRet        | 对内存数据减1并返回运算结果         |
| 交换   | LOS_AtomicXchg32bits    | 交换内存数据，原内存中的值以返回值的方式返回 |
| 交换   | LOS_AtomicCmpXchg32bits | 比较并交换内存数据，返回比较结果       |
   
表2Atomic64原子操作功能列表 
| 功能分类 | 接口名                     | 描述                        |
|:---|:---|:---|
| 读    | LOS_Atomic64Read        | 读取64位内存数据                 |
| 写    | LOS_Atomic64Set         | 写入64位内存数据                 |
| 加    | LOS_Atomic64Add         | 对64位内存数据做加法               |
| 加    | LOS_Atomic64Sub         | 对64位内存数据做减法               |
| 加    | LOS_Atomic64Inc         | 对64位内存数据加1                |
| 加    | LOS_Atomic64IncRet      | 对64位内存数据加1并返回运算结果         |
| 减    | LOS_Atomic64Dec         | 对64位内存数据减1                |
| 减    | LOS_Atomic64DecRet      | 对64位内存数据减1并返回运算结果         |
| 交换   | LOS_AtomicXchg64bits    | 交换64位内存数据，原内存中的值以返回值的方式返回 |
| 交换   | LOS_AtomicCmpXchg64bits | 比较并交换64位内存数据，返回比较结果       |
   
![](https://support.huaweicloud.com/kernelmanual-LiteOS/public_sys-resources/notice_3.0-zh-cn.png)
原子操作中，操作数及其结果不能超过函数所支持位数的最大值。
#### 平台差异性
无。
