开发指导
使用场景
有多个任务对同一个内存数据进行加减或交换操作时,使用原子操作保证结果的可预知性。
功能
Huawei LiteOS的原子数据包含两种类型Atomic(有符号32位数)与 Atomic64(有符号64位数)。原子操作模块为用户提供下面几种功能,接口详细信息可以查看API参考。
功能分类 | 接口名 | 描述 |
|---|---|---|
读 | LOS_AtomicRead | 读取内存数据 |
写 | LOS_AtomicSet | 写入内存数据 |
加 | LOS_AtomicAdd | 对内存数据做加法 |
LOS_AtomicSub | 对内存数据做减法 | |
LOS_AtomicInc | 对内存数据加1 | |
LOS_AtomicIncRet | 对内存数据加1并返回运算结果 | |
减 | LOS_AtomicDec | 对内存数据减1 |
LOS_AtomicDecRet | 对内存数据减1并返回运算结果 | |
交换 | LOS_AtomicXchg32bits | 交换内存数据,原内存中的值以返回值的方式返回 |
LOS_AtomicCmpXchg32bits | 比较并交换内存数据,返回比较结果 |
功能分类 | 接口名 | 描述 |
|---|---|---|
读 | 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位内存数据,返回比较结果 |

原子操作中,操作数及其结果不能超过函数所支持位数的最大值。
平台差异性
无。

