compare and swap 是什么
时间: 2023-10-27 12:06:24 浏览: 46
Compare and Swap(CAS)是一种原子操作,用于在多线程编程中实现同步。它是一种基于硬件原语或操作系统原语的操作,能够在不使用锁的情况下实现原子性操作。CAS操作需要指定一个内存地址、期望值和新值,如果该内存地址的值等于期望值,则将该内存地址的值修改为新值并返回true,否则不做任何操作并返回false。CAS操作通常用于实现线程安全的数据结构,如无锁队列、计数器等。
相关问题
Compare And Swap
__sync_bool_compare_and_swap是GCC内置函数,用于实现原子操作,即在多线程环境下保证操作的原子性。该函数的作用是比较内存中的值和给定的值,如果相等,则将内存中的值替换为新值,并返回true;否则不做任何操作,并返回false。该函数的原型为:
bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...)
其中,type表示要操作的数据类型,ptr表示要操作的内存地址,oldval表示要比较的旧值,newval表示要替换的新值。如果有第四个参数,则表示要使用的内存模型。
__sync_bool_compare_and_swap
__sync_bool_compare_and_swap是GCC内置函数,用于实现原子操作,即在多线程环境下保证操作的原子性。该函数的作用是比较内存中的值和给定的值,如果相等,则将内存中的值替换为新值,并返回true;否则不做任何操作,并返回false。该函数的原型为:
bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...)
其中,type表示要操作的数据类型,ptr表示要操作的内存地址,oldval表示要比较的旧值,newval表示要替换的新值。如果有第四个参数,则表示要使用的内存模型。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)