gpt4 book ai didi

go - 使用 RWMutex 代替 Mutex 有什么好处?

转载 作者:IT老高 更新时间:2023-10-28 13:08:00 28 4
gpt4 key购买 nike

我不确定何时使用 RWMutex 以及何时使用 Mutex。

如果你使用 RWMutex 而不是 Mutex,如果你做更多的读然后写,你会节省资源吗?

我看到有些人无论做什么都一直使用 Mutex,有些人使用 RWMutex 并运行这些方法:

func (rw *RWMutex) Lock()
func (rw *RWMutex) Unlock()
func (rw *RWMutex) RLock()
func (rw *RWMutex) RUnlock()

而不仅仅是:

func (m *Mutex) Lock()
func (m *Mutex) Unlock()

如果你节省资源,如果你做更多的读然后写,你应该使用 RWMutex 有那么大的区别吗?

最佳答案

来自 the docs (强调我的):

A RWMutex is a reader/writer mutual exclusion lock. The lock can be held by an arbitrary number of readers or a single writer. The zero value for a RWMutex is an unlocked mutex.

换句话说,读者不必互相等待。他们只需要等待持有锁的写入者。

因此,对于大部分读取的数据而言,sync.RWMutex 更可取,与 sync.Mutex 相比,节省的资源是时间。

关于go - 使用 RWMutex 代替 Mutex 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48861029/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com