虽然Golang Mutex只有短短的200多行,但是已经是一个极其丰富、精炼的组件,有极其复杂的状态控制.
一、sync.Mutex设计v1/v2版本
其实如果我们去追溯 Mutex 的演进历史,会发现,Mutex最开始是一个非常简单的实现,简单到难以置信的地步,是Go开发者们经过了好几轮的优化才变成了现在这么一个非常复杂的数据结构,这是一个逐步完善的过程.于是我想如果我们是设计者,我们会怎么去设计去优化一个锁的实现呢?
Mutex是Golang 中的锁,主要是控制并发访问资源,保护共享资源。
1、首先从最简单的锁开始设计
...大约 16 分钟