Android系统中提供的原子操作的一系列函数,代码位于system/core/include/cutils文件夹。原子变量的加法操作int32_t android_atomic_add(int32_t value, volatile int32_t* addr);原子变量的减法操作可以通过传递负值给加法操作函数来完成。

2.原子变量的自增和自减操作int32_t android_atomic_inc(volatile int32_t* addr);

int32_t android_atomic_dec(volatile int32_t* addr);

3.原子变量的与操作int32_t android_atomic_and(int32_t value, volatile int32_t* addr);

4.原子变量的或操作int32_t android_atomic_or(int32_t value, volatile int32_t* addr);

5.原子变量的设置void android_atomic_acquire_store(int32_t value, volatile int32_t* addr);

void android_atomic_release_store(int32_t value, volatile int32_t* addr);注意 上面这两个函数从功能上是一样的,区别只是内存屏障位于读取前还是读取后,下面的两组函数也类似。

6.原子变量的读取int32_t android_atomic_acquire_load(volatile const int32_t* addr);

int32_t android_atomic_release_load(volatile const int32_t* addr);

7.原子变量的比较并交换int android_atomic_acquire_cas(int32_t oldvalue, int32_t newvalue, volatile int32_t* addr);

int android_atomic_release_cas(int32_t oldvalue, int32_t newvalue, volatile int32_t* addr);

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐