Compare And Swap
时间: 2024-04-15 16:25:09 浏览: 144
__sync_bool_compare_and_swap是GCC内置函数,用于实现原子操作,即在多线程环境下保证操作的原子性。该函数的作用是比较内存中的值和给定的值,如果相等,则将内存中的值替换为新值,并返回true;否则不做任何操作,并返回false。该函数的原型为:
bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...)
其中,type表示要操作的数据类型,ptr表示要操作的内存地址,oldval表示要比较的旧值,newval表示要替换的新值。如果有第四个参数,则表示要使用的内存模型。
相关问题
compare and swap 是什么
Compare and Swap(CAS)是一种原子操作,用于在多线程编程中实现同步。它是一种基于硬件原语或操作系统原语的操作,能够在不使用锁的情况下实现原子性操作。CAS操作需要指定一个内存地址、期望值和新值,如果该内存地址的值等于期望值,则将该内存地址的值修改为新值并返回true,否则不做任何操作并返回false。CAS操作通常用于实现线程安全的数据结构,如无锁队列、计数器等。
__sync_val_compare_and_swap
__sync_val_compare_and_swap是GCC内置函数之一,用于实现原子操作。它的作用是比较内存地址中的值和给定值,如果相等,则将内存地址中的值替换为新值,并返回原来的值。这个操作是原子的,即在执行期间不会被中断。这个函数通常用于多线程编程中,用于保证共享变量的同步和一致性。
阅读全文