ConcurrentHashMap: It allows concurrent modification of the Map from several threads without the need to block them.
Collections.synchronizedMap(map): It creates a blocking Map which will degrade performance, albeit ensure consistency (if used properly).