我不确定何时使用RWMutex以及何时使用Mutex.
如果您使用RWMutex而不是Mutex,如果您执行更多读取然后写入,您是否节省了资源?
我看到有些人不管他们做什么都会一直使用Mutex,有些人使用RWMutex并运行这些方法:
func (rw *RWMutex) Lock()
func (rw *RWMutex) Unlock()
func (rw *RWMutex) RLock()
func (rw *RWMutex) RUnlock()
Run Code Online (Sandbox Code Playgroud)
而不只是:
func (m *Mutex) Lock()
func (m *Mutex) Unlock()
Run Code Online (Sandbox Code Playgroud)
如果您节省了资源,那么如果您执行更多读取然后写入,那么您应该使用RWMutex吗?
Pet*_*ter 19
从文档(强调我的):
RWMutex是读/写互斥锁.锁可以由任意数量的读者或单个作者持有.RWMutex的零值是解锁的互斥锁.
换句话说,读者不必彼此等待.他们只需要等待持有锁的作家.
因此,sync.RWMutex对于主要读取的数据是优选的,并且与sync.Mutex相比节省的资源是时间.