Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
A cache is typically used in a concurrent environment. Since Java 6 using a ReentrantLock is faster than synchronized so can be interesting to replace synchronized blocks by a lock.
Places i'm thinking about:
- CompositeCache
- AbstractDoubleLinkedListMemoryCache
- LHMLRUMemoryCache
- DoubleLinkedList
- LRUMap
- SingleLinkedList
- SortedPreferentialArray
Some places where replacing a HashMap by a ConcurrentHashMap can allow to get rid of synchronized without needing a lock:
- CacheEventQueue
- AbstractDiskCache
- CacheWatchRepairable
There are other places but this is the main I saw.