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

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

Go 语言中,原子包提供了较低级别的原子内存,有助于实现同步算法。atomic.LoadInt64() 函数用于原子加载 *addr。此函数定义在 atomic 包中。在这里,您需要导入“sync/atomic”包才能使用这些函数。

语法:

func LoadInt64(addr *int64) (val int64)

在这里,addr 指地址。

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

返回值:它返回加载到addr的值。

示例 1:

// 演示在 Golang 中使用 LoadInt64 函数的程序
 
// 包含主包
package main
 
// 引入 fmt 和 sync/atomic
import (
    "fmt"
    "sync/atomic"
)
 
// 主函数
func main() {
 
    // 将值分配给 int64
    var (
        i int64 = 68678677
        j int64 = -45369087334
        k int64 = 0
        l int64 = 75
    )
 
    // 使用其参数调用 LoadInt64 方法
    load_1 := atomic.LoadInt64(&i)
    load_2 := atomic.LoadInt64(&j)
    load_3 := atomic.LoadInt64(&k)
    load_4 := atomic.LoadInt64(&l)
 
    // 显示 *addr 中加载的 int64 值
    fmt.Println(load_1)
    fmt.Println(load_2)
    fmt.Println(load_3)
    fmt.Println(load_4)
} 

输出:

68678677
-45369087334
0
75

示例 2:

// 演示在 Golang 中使用 LoadInt64 函数的程序
 
// 包含主包
package main
 
// 引入 fmt 和 sync/atomic
import (
    "fmt"
    "sync/atomic"
)
 
// 主函数
func main() {
 
    // 声明 x
    var x int64
 
    // For 循环
    for i := 2; i < 500; i += 3 {
 
        // AddInt64 方法的函数
        go func() {
            atomic.AddInt64(&x, 5)
        }()
    }
 
    // 打印已加载的值的地址
    fmt.Println(atomic.LoadInt64(&x))
} 

输出:

435   // 每次运行随机返回一个值

在上面的示例中,每次调用 AddInt64() 方法返回的新值都存储在不同的地址中,LoadInt64() 方法返回这些新值的地址。并且这个地址可以是任意的,所以每次运行 LoadInt64() 方法的输出都是不同的。因此,这里返回随机值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程