[Solved] In JDK1.8, is it necessary to use ConcurrentHashMap on all occasions that require synchronization?


No, it is not necessary to replace use of Collections.synchronizedMap with ConcurrentHashMap when used by multiple threads.

The Concurrent Collections section in the javadoc for package java.util.concurrent says:

“Synchronized” classes can be useful when you need to prevent all access to a collection via a single lock, at the expense of poorer scalability. In other cases in which multiple threads are expected to access a common collection, “concurrent” versions are normally preferable.

As you can see, both Collections.synchronizedMap and ConcurrentHashMap can have their uses.

See also “What’s the difference between ConcurrentHashMap and Collections.synchronizedMap(Map)?”.

solved In JDK1.8, is it necessary to use ConcurrentHashMap on all occasions that require synchronization?