fetch_and_add 内核服务
用途
以原子方式递增变量。
语法
参数
| 项 | 描述 |
|---|---|
| addr | 指定要增大的变量的地址。 |
| value | 指定要添加到变量中的值。 |
描述
fetch_and_add 内核服务以原子方式递增变量。
fetch_and_add 内核服务在单字 (32 位) 变量上运行,而 fetch_and_addlp 内核服务在双字 (64 位) 变量上运行。
当计数器变量在多个内核线程之间共享时,这些操作很有用,因为它确保了用于递增计数器的访存,更新和存储操作以原子方式发生 (不可中断)。
注意:
- fetch_and_add 内核服务的单字变量必须在一个字 (32 位) 边界上对齐。
- fetch_and_addlp 内核服务的双字变量必须在双字 (64 位) 边界上进行对齐。
执行环境
返回值
fetch_and_add 内核服务会返回该变量的原始值。