Go atomic.LoadUint32() 和 Uint32相关处理方法

2022-06-16
阅读 4 分钟
2.5k
一、介绍在go语言中,atomic包提供和内存处理的原子化操作,在同步程序处理中,经常使用。LoadUint32()函数,提供加载原子化内存*addr,并返回Uint32格式。

go语言源码阅读sync.Once

2022-06-15
阅读 2 分钟
761
sync.Once是 Go 标准库提供的使函数只执行一次的实现,常应用于单例模式,例如初始化配置、保持数据库连接等。作用与 init 函数类似,但有区别。

go源码阅读sync.RWMutex读写锁

2022-06-14
阅读 1 分钟
771
一、介绍sync.RWMutex为读写锁,源码位置在src/sync/rwmutex.go我们使用命令 go doc sync.RWMutex

go语言源码阅读unsafe包和unsafe.Pointer以及go指针运算

2022-06-06
阅读 8 分钟
1.6k
一个指针变量可以指向任何一个值的内存地址,它所指向的值的内存地址在 32 和 64 位机器上分别占用 4 或 8 个字节,占用字节的大小与所指向的值的大小无关。当一个指针被定义后没有分配到任何变量时,它的默认值为 nil。

go语言atomic.Value源码阅读

2022-06-02
阅读 2 分钟
1.4k
atomic.Value被设计用来存储任意类型的数据,所以它内部的字段是一个interface{}类型。源码在 src/sync/atomic/value.go 中

go语言sync.atomic源码阅读

2022-05-27
阅读 1 分钟
834
atomic包是Go语言提供的原子操作(atomic operation)原语的相关接口。原子操作是相对于普通指令操作而言的。以一个整型变量自增的语句为例:

go语言sync.map源码阅读

2022-05-26
阅读 11 分钟
1.4k
Go语言提倡“不要通过共享内存来通信,而应该通过通信来共享内存”。 Go语言在提供CSP并发模型原语的同时,还通过标准库的sync包提供了针对传统基于共享内存并发模型的基本同步原语,包括互斥锁(sync.Mutex)、读写锁(sync.RWMutex)、条件变量(sync.Cond)哈希表sync.map等。 sync.map是基于传统基于共享内存并发模型...