Solo para aclarar las diferencias entre RWLock y no usar nada:
- Lock bloquea lecturas (con RLock) y escrituras (con Lock) de otras goroutines
- Unlock permite nuevas lecturas (con Rlock) y/o otra escritura (con Lock)
- RLock bloquea escrituras (Lock) pero no bloquea lecturas (RLock)
- RUnlock permite nuevas escrituras (y también lecturas, pero por la naturaleza de RLock, estas no se vieron bloqueadas nunca)
En esencia, RLock de RWLock garantiza una secuencia de lecturas en donde el valor que lees no se verá alterado por nuevos escritores, a diferencia de no usar nada.
Sacado de aquà mero
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?