Advertisement

图解Golang中读写锁的实现及其实现机制与运行逻辑分析

阅读量:

基础筑基

读写锁的特点

该机制的关键特征在于两组不同的锁定机制:read lock(读锁)之间具有共享特性,在不影响其他 goroutine 的前提下允许多个 goroutine 同时获取 read lock;然而在 write lock(write lock)之间则存在严格的互斥机制

写锁饥饿问题

由于 read 操作所涉及的资源具有互斥性,在已有多个 read 操作的情况下,“ goroutine 继续尝试获取 read 操作在正常情况下能够成功获取;然而当持续存在多个 read 操作时,“ 相应地 attempt to acquire a write operation by subsequent goroutines may often be blocked indefinitely, which is known as the readlock-induced write deadlocks (RwD) problem.

基于高低位与等待队列的实现

image.png

在介绍Java语言时,在讲解并发控制机制时会提到一种名为Reentrant

全部评论 (0)

还没有任何评论哟~