我不确定何时使用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带来很大的不同吗?
从文档(强调我的):
RWMutex是读取器/写入器互斥锁。锁可以由任意数量的读取器或单个写入器持有。RWMutex的零值是未锁定的互斥量。
换句话说,读者不必彼此等待。他们只需要等待持有锁的作家。
因此,sync.RWMutex对于大多数读取的数据更可取,并且与sync.Mutex相比,节省的资源是时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句