3 ms·
> don't touch ReadWriteLocks I am interested in references that back this statement
by sorokod 7y ago
> don't touch ReadWriteLocks
I am interested in references that back this statement
- jabba_d_hut 7y agoStampedLocks performs much better than R/W locks.
- MrBuddyCasino 7y agoI was interested in this as well, and yes ReadWriteLocks are horrible[0]. Just using synchronized is a good default that performs well in most scenarios, StampedLocks are good too. [0] https://blog.overops.com/java-8-stampedlocks-vs-readwritelocks-and-synchronized/ https://blog.overops.com/java-8-stampedlocks-vs-readwriteloc...
- xxs 7y agoAbout the blog - testing with more threads than cores could be quite misleading, also testing on dual/quad socket vs single one exhibits the effects on coherency traffic a lot more (compared to L3 talk)
- xxs 7y agoBriefly: - the lock has write a CAS on the =fast= read path, causing coherency traffic and a contention point between the readers. That's it the readers don't scale - it's quite hard to use correctly, i.e. after read, determining the exclusive/write lock has to be acquired, the read lock has to be released 1st, the write lock acquired and the conditions that causes the grab to be rechecked - Copy-On-Write should be a preferred solution for most cases, easy to understand and reason about. If not StampedLock is a better alternative.