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() 方法的输出都是不同的。因此,这里返回随机值。