How does ConcurrentHashMap achieve its thread safe concurrency behavior?
===

I have been going through the java.util.concurrent package and trying to understand what the library provides to us . I came across `CopyOnWriteArrayList` and `ConcurrentHashMap` classes and trying to find how these clases achieve thread safety . For `CopyOnWriteArrayList` it is pretty much intuitive and they are implemented by making a fresh copy of the underlying array whenever there is a write operation . However I am not able to understand the bigger picture of how the `ConcurrentHashMap` achieves thread safety , providing concurrency at the same time ?