slice 源码浅读

slice下面我们对 go 的数据结构 slice 的操作和源码尝试解读,有点类似于 java 中的数组但是又不相同 数据结构12345type slice struct { array unsafe.Pointer len int c...

并发安全的map的解读与使用

sync.Map虽然 Go 1.24 把内置 map 的底层实现升级为基于 Swiss Table 的设计,优化了 map 操作速度,但是内置 map 仍然不是并发安全的。想要使用并发安全的 map 有几个方法: 使用 go 提供的 sync.Ma...

全新存储方式的 map

Map在go 1.24中,对于map的存储更换了新的存储方法,使用Swiss table的方式存储数据,优化了map的操作,下面我们展开讨论map的实现,以下表述默认 64 位架构 首先是简介对hash冲突的解决方法,因为某个 key 应该落在哪个槽...

channel 源码浅读

channel不要通过共享内存来通信,而要通过通信来共享内存 以下是 go 1.24.4版本的 channel 的实现,尝试去解读 数据结构 hchan 123456789101112131415type hchan struct { q...

context 源码浅读

context通常用来并发协调以及对 goroutine 的生命周期控制. 笔者在使用context的时候想要了解几种context的实现与相关操作,因此基于go 1.24 进行查看和尝试解读。第一次输出文章有哪些错误和解读未到位的地方欢迎指出,望大...