RWMutex
读写锁 RWMutex
1. RWMutex 使用
标准库中的 RWMutex 是一个 reader/writer 互斥锁,用来解决并发读写问题,特别适用于读多写少的场景。RWMutex 在某一时刻只能由任意数量的 reader 持有,或者是只被单个的 writer 持有。
读写锁 RWMutex
标准库中的 RWMutex 是一个 reader/writer 互斥锁,用来解决并发读写问题,特别适用于读多写少的场景。RWMutex 在某一时刻只能由任意数量的 reader 持有,或者是只被单个的 writer 持有。
如何基于 Mutex 实现一个可重入锁
上一节我们介绍了 Mutex 的实现原理,这一节我们来看看如何基于标准库的 Mutex 来扩展 Mutex 提供的并发原语,包括:
实现可重入锁的关键是要锁能记住当前哪个 goroutine 持有锁,这里有两个方案:
Go 第一个并发原语 Mutex 互斥锁
互斥锁是最基本的并发原语,使用互斥锁,限定临界区只能同时由一个线程持有。基本上所有编程语言都会提供,Go 中互斥锁为 Mutex,Mutex 位于标准库 sync 中,其实现了 sync 中的 Locker 接口:
这个系列我们开始学习 Go 语言的第四个部分: 并发编程。
Go 语言的并发编程,我们学习的核心内容来自于极客时间的专栏Go 并发编程实战课,作者网名鸟窝。这个专栏在极客时间上的订阅并不多,但绝对是五星推荐。
前面我们介绍 Go 项目工程化提到了 /api 目录。这目录是协议定义目录,用于存放约定项目接口的 IDL 文件。按照现在的主流基本都是 Protobuf 文件。Protobuf 的管理和共享就是今天的话题。