Go 并发控制:Singleflight、sync.Once 与 init() 对比
本文对比 Go 中 singleflight、sync.Once 和 init() 三种并发控制机制:singleflight 用于高并发下防缓存击穿(同 key 仅执行一次);sync.Once 保证函数终生只执行一次,适合懒加载;init() 在包导入时自动执行,用于包级初始化。
本文对比 Go 中 singleflight、sync.Once 和 init() 三种并发控制机制:singleflight 用于高并发下防缓存击穿(同 key 仅执行一次);sync.Once 保证函数终生只执行一次,适合懒加载;init() 在包导入时自动执行,用于包级初始化。
基于 Go 1.26.1 梳理 Mutex、RWMutex、WaitGroup、Once、Cond、Pool 和 sync.Map,重点关注内存模型、使用边界与版本变化。