# Package org.apache.groovy.util.concurrent.concurrentlinkedhashmap

package org.apache.groovy.util.concurrent.concurrentlinkedhashmap
This package contains an implementation of a bounded `ConcurrentMap` data structure.

`Weigher` is a simple interface for determining how many units of capacity an entry consumes. Depending on which concrete Weigher class is used, an entry may consume a different amount of space within the cache. The `Weighers` class provides utility methods for obtaining the most common kinds of implementations.

`EvictionListener` provides the ability to be notified when an entry is evicted from the map. An eviction occurs when the entry was automatically removed due to the map exceeding a capacity threshold. It is not called when an entry was explicitly removed.

The `ConcurrentLinkedHashMap` class supplies an efficient, scalable, thread-safe, bounded map. As with the `Java Collections Framework` the "Concurrent" prefix is used to indicate that the map is not governed by a single exclusion lock.

See Also:
  - http://code.google.com/p/concurrentlinkedhashmap/

- Related Packages
  Package
  Description
  org.apache.groovy.util.concurrent
- Class
  Description
  ConcurrentLinkedHashMap<K,V>
  A hash table supporting full concurrency of retrievals, adjustable expected concurrency for updates, and a maximum capacity to bound the map by.
  ConcurrentLinkedHashMap.Builder<K,V>
  A builder that creates `ConcurrentLinkedHashMap` instances.
  EntryWeigher<K,V>
  A class that can determine the weight of an entry.
  EvictionListener<K,V>
  A listener registered for notification when an entry is evicted.
  Weigher<V>
  A class that can determine the weight of a value.
  Weighers
  A common set of `Weigher` and `EntryWeigher` implementations.