Golang atomic.StoreInt64()函数及其示例

Golang atomic.StoreInt64()函数及其示例

在Go语言中,原子包提供了低级原子内存,有助于实现同步算法。Go语言中的 StoreInt64() 函数用于将val原子地存储到*addr中。该函数在原子包中定义。在此处,您需要导入“sync / atomic”包,以便使用这些函数。

语法:

  func StoreInt64(addr *int64, val int64)

这里,addr指示地址。

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

返回值:将val存储在*addr中,然后在需要时可以返回它。

示例1:

//程序演示了
//使用Golang中的StoreInt64函数  
  
//包含主要包
package main
  
// 导入 fmt 和 sync / atomic
import (
    "fmt"
    "sync/atomic"
)
  
//主函数
func main() {
  
    // 为存储val的地址定义变量 
    var (
        x int64
        y int64
    )
  
    // 使用 StoreInt64 方法 
    // 和它的参数
    atomic.StoreInt64(&x, 6777676777)
    atomic.StoreInt64(&y, 98877)
  
    // 显示存储在addr中的值
    fmt.Println(atomic.LoadInt64(&x))
    fmt.Println(atomic.LoadInt64(&y))
} 

输出:

  6777676777
  98877

这里,首先将int64值存储在定义的地址中,然后使用上面的LoadInt64()方法返回它们。

示例2:

//程序演示了
//使用Golang中的StoreInt64函数  
  
//包含主要包
package main
  
// 导入 fmt 和 sync / atomic
import (
    "fmt"
    "sync/atomic"
)
  
//主函数
func main() {
  
    // 为存储val的地址定义变量 
    var (
        x int64
    )
  
    // 使用 StoreInt64 方法
    // 和它的参数
    atomic.StoreInt64(&x, 3654567899788)
  
    // 加载存储的val
    z := atomic.LoadInt64(&x)
  
    // 如果值相同则返回true
    // 否则返回false
    fmt.Println(z == x)
  
    // 如果地址相同则返回true
    // 否则返回false
    fmt.Println(&z == &x)
} 

输出:

  true
  false

这里,存储和加载的值相同,因此返回true,但它们的地址不同,因此在这种情况下返回false。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程