MST

星途 面试题库

面试题:Go语言中RWMutex写饥饿现象产生的原因是什么

在Go语言里使用RWMutex时,可能会出现写饥饿现象,请阐述这种现象产生的原因是什么?
42.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 写饥饿现象产生原因
    • 读锁优先特性RWMutex 允许多个读操作同时进行,而写操作需要独占锁。当读操作频繁发生时,由于读锁可以同时被多个读操作获取,写操作就很难获取到锁。
    • 读锁未释放场景:如果读操作持有读锁的时间较长,或者读操作不断地被添加到等待队列中,那么写操作就会一直处于等待状态,从而导致写饥饿。例如,在一个高并发的读取数据场景中,读操作持续不断,写操作就很难有机会获取到锁进行数据更新。