Для чего RWMutex.RLocker()?

Ответ

Возвращает sync.Locker, который при Lock/Unlock вызывает RLock/RUnlock того же RWMutex. Нужно когда функция принимает sync.Locker, но вы хотите передать только право на чтение (многие горутины могут держать RLock одновременно).

func readWithLock(l sync.Locker, f func()) { l.Lock(); defer l.Unlock(); f() }
readWithLock(mu.RLocker(), func() { _ = data[key] })
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.