A cache almost always uses a RW mutex or a lock free technique like copy on 
write/CAS to avoid contention. 

A simple mutex is fine for less performance critical code with guaranteed 
exclusive/sequential access needs. Many transaction modes are implemented with 
a simple lock/mutex. 

> On Dec 20, 2020, at 6:59 AM, 'Axel Wagner' via golang-nuts 
> <golang-nuts@googlegroups.com> wrote:
> 
> 
> Unless I specifically know that a variable will be written rarely and read 
> often, I tend to use `Mutex`. I'm too worried that the preferential treatment 
> of write-locks in an `RWMutex` leads to surprising contention-issues if there 
> isn't an overwhelming relationship between their frequencies. I also assume - 
> given that it has the more complicated semantics - that a `Mutex` is 
> generally cheaper than an `RWMutex`, all things being equal.
> 
> So I tend to handle it the exact opposite of what you suggest - unless I have 
> a specific reason to use `RWMutex`, I default to `Mutex`.
> 
>> On Sun, Dec 20, 2020 at 9:44 AM 김용빈 <kyb...@gmail.com> wrote:
>> we usually both read and write for a value. not only read, nor write.
>> 
>> with that, I feel RWMutex is always right choice.
>> 
>> when should I use Mutex instead of RWMutex?
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/f597de36-b296-4f59-b756-adb1248387f5n%40googlegroups.com.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/CAEkBMfEvPFgq-cQ41Bi%3D4OtaNait-k-2iXG3yWTb8Yj%2BjHDM3Q%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/2A9FF454-BD0C-4594-B3E9-FD1364077689%40ix.netcom.com.

Reply via email to