📌  相关文章
📜  Golang 中的 atomic.LoadInt64()函数示例(1)

📅  最后修改于: 2023-12-03 15:31:01.174000             🧑  作者: Mango

Golang 中的 atomic.LoadInt64() 函数介绍

简介

atomic.LoadInt64() 是 Golang 源码包 sync/atomic 中的一个函数,它可以以原子操作的方式获取一个 int64 类型变量的值。该函数还有其他几种变体,如 atomic.LoadInt32()atomic.LoadUint32() 等,用于获取指定类型变量的值。

语法

函数原型如下:

func LoadInt64(addr *int64) (val int64)

参数说明:

  • addr:int64 指针类型变量的地址。

返回值:

  • val:int64 类型变量的值。
示例代码
package main

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var count int64 = 10
    fmt.Printf("count 初始值:%d\n", count)

    newCount := atomic.LoadInt64(&count)
    fmt.Printf("count 现在的值:%d\n", newCount)
}

输出结果为:

count 初始值:10
count 现在的值:10
注意事项
  • atomic.LoadInt64() 函数的使用场景通常是在多个 goroutine 中访问同一个变量时,通过原子操作避免数据竞争。因此在单线程环境下使用该函数没有意义。
  • atomic.LoadInt64() 函数的调用方一般不需要关心具体的加载过程,只需要获取结果即可。
  • 由于 atomic.LoadInt64() 函数是一个原子操作,它的执行速度要比常规的变量操作要慢,这应该是使用该函数时需要注意的一个因素。