Golang atomic.CompareAndSwapInt64() 函数及其示例
在 Go 语言中,atomic 包提供了较低级别的原子内存,有助于实现同步算法。在 Go 语言中,使用 CompareAndSwapInt64() 函数来执行 int64 值的比较和交换操作。此函数在 atomic 包下定义。在这里,您需要导入 “sync/atomic” 包才能使用这些函数。
语法:
其中,addr 表示地址,old 表示 int64 值,它是从交换操作返回的旧交换值,而 new 是 int64 新值,它将从旧交换值中交换自己。
注意: (*int64)
是指向 int64 值的指针。int64 是 64 位比特大小的整数类型。而 int64 包含所有带符号的 64 位整数,范围从 -9223372036854775808 到 9223372036854775807。
返回值:如果交换已经完成,则返回 true,否则返回 false。
以下示例说明了上述方法的使用:
示例 1:
输出:
示例 2:
输出:
在这里,CompareAndSwapInt64 方法中的旧值必须是从 SwapInt64 方法返回的交换值。在此处未执行交换,因此返回 false。