📅  最后修改于: 2023-12-03 15:31:01.192000             🧑  作者: Mango
Golang提供了一系列的原子操作函数,可以帮助程序员处理多个goroutine同时访问某个共享变量的问题。atomic.StoreUint32()是其中一个函数,其作用是将一个 uint32 类型的值存储到指定的内存地址处,同时保证这个存储操作是原子性的,即不会发生竞争问题。
函数签名如下:
func StoreUint32(addr *uint32, val uint32)
该函数没有返回值。
下面是一个简单的示例程序,演示了如何使用 atomic.StoreUint32() 函数来修改共享变量的值。
package main
import (
"fmt"
"sync/atomic"
)
func main() {
var num uint32 = 10
fmt.Printf("原始值:%d\n", num)
atomic.StoreUint32(&num, 20)
fmt.Printf("修改后的值:%d\n", num)
}
代码解释:
输出结果:
原始值:10
修改后的值:20