Golang atomic.SwapInt64()函数的示例

Golang atomic.SwapInt64()函数的示例

在Go语言中,原子包提供了更低级别的原子内存,有助于实现同步算法。Golang语言中的 SwapInt64() 函数用于原子地将新值存储到addr中,并返回以前的addr值。该函数在原子包中定义。在这里,您需要导入”sync/atomic”包,以便使用这些函数。

语法:

func SwapInt64(addr *int64, new int64) (old int64)

在这里,addr表示地址。new是新的int64值,而old是旧的int64值。

注意:(* int64)是指向int64值的指针。但是,int64包含从-9223372036854775808到9223372036854775807的所有有符号64位整数的集合。

返回值:它将新的int64值存储到addr中,并返回以前的addr值。

示例1:

//展示在Golang中使用SwapInt64函数的用法的程序。

//包括主要包
package main

//导入fmt和sync/atomic
import (
    "fmt"
    "sync/atomic"
)

//主函数
func main() {

    //给int64赋值
    var x int64 = 25786808555

    //使用SwapInt64方法和其参数
    var old_val = atomic.SwapInt64(&x, 4567898196323)

    //打印新值和旧值
    fmt.Println("存储新值:", x, ",旧值:", old_val)
} 

输出:

存储新值:4567898196323,旧值:25786808555

示例2:

//展示在Golang中使用SwapInt64函数的用法的程序。

//包括主要包
package main

//导入fmt和sync/atomic
import (
    "fmt"
    "sync/atomic"
)

//主函数
func main() {

    //给int64赋值
    var m int64 = 78453984556
    var n int64 = 364576677888

    //使用SwapInt64方法和其参数
    var oldVal1 = atomic.SwapInt64(&m, 78453984556)
    var oldVal2 = atomic.SwapInt64(&n, 935128383)

    //打印输出
    fmt.Println((oldVal1) == m)
    fmt.Println((oldVal2) == n)
} 

输出:

true
false

在这里,oldVal1等于“m”,因为要存储的新值与旧值相同,因此返回true,但是oldVal2不等于“n”,因为旧值不与新分配的值相似,因此返回false。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程