Concurrent Collection Classes:
Java utility classes are generally useful when used with concurrent programming. This package includes a few small standardized extensible frameworks and some classes that provide proper functionality that is otherwise very difficult to implement.
Concurrent Collections:
This package supplies Collection implementations mainly used in multithreaded processes. A concurrent collection is always thread-safe, and a single exclusion lock does not govern it.
Here are some of the classes below:
- ConcurrentSkipListMap: Usually preferable to a synchronized TreeMap
- CopyOnWriteArraySet: Well suited for applications where set sizes generally stay small and read-only operations vastly outnumber mutative operations(add, set, remove, etc.).
- ConcurrentSkipListSet: This is essentially an equivalent of TreeMap and TreeSet for concurrent code.
- CopyOnWriteArrayList: It’s preferable over synchronized ArrayList, where an expected number of reads vastly outnumbers the number of updates in the list.
- ConcurrentHashMap: Whenever many threads are expected to access a given collection, ConcurrentHashMap usually is preferable to a synchronized HashMap.