Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
lists | 2014-03-14 | ||
list | 2014-03-13 | ||
experimental | 2014-01-05 | ||
collections | 2014-01-03 | ||
leftright | 2013-11-26 | ||
counter | 2013-10-02 | ||
locks | 2013-10-02 | ||
jdkext | 2013-09-29 | ||
blockingutils | 2013-09-29 | ||
Totals: 9 Items | 0 |
Concurrency Freaks Library This is a Java library of concurrent data structures. For the moment, it is mostly reader-writer locks, a few counters, and a few blocking data structures, but much more stuff is being prepared. Check out our blog for more info and tips on concurrency programming and patterns: http://www.concurrencyfreaks.com What's new in release 0.5: - More validation tests - Added BlockingArrayList: An ArrayList protected with a LongAdderRWLock. - Added "transient" keyword to member fields of lock classes so that they work with serialization. - Added OffByXCounter: A counter that can be incremented from a single thread and uses relaxed atomics to improve performance - Added DistributedCacheLineCounter: A counter that can be incremented and read from multiple threads and that uses a set of counters distributed over several cache lines, which makes it very fast for incrementing but slow for reading. - Added DCLCRWLock: A Reader-Writer lock based on a Distributed Cache Line Counter that uses an array of fixed size and a hash function to distribute the reader's states among different cache lines to avoid contention (and false-sharing). - Added DCLCStampedRWLock: A lock similar to DCLCRWLock that "defaults" to a StampedLock in case of many Writers. - Added LongAdderRWLock: A Reader-Writer lock that uses the same 2-state algorithm described in the NUMA paper but with LongAdder as counters for Readers. - Added LongAdderStampedRWLock: A lock similar similar to LongAdderRWLock that defaults to a StampedLock in case of many Writers. - Added LongAdderExtRWLock: A Lock that uses a single LongAdder instead of two LongAdder instances like in the case of the LongAdderRWLock, but it requires a small modification to the LongAdder provided in JDK 8.