ConcurrentHashMap为什么安全
时间: 2023-11-17 09:59:56 浏览: 81
阿里面试题:ConcurrentHashMap为什么是线程安全的?
ConcurrentHashMap是线程安全的,因为它使用了锁分段技术。具体来说,ConcurrentHashMap将整个Map分成了多个Segment,每个Segment都是一个独立的Hash表,拥有自己的锁。这样,在多线程环境下,不同的线程可以同时访问不同的Segment,从而提高了并发性能。同时,由于每个Segment都有自己的锁,不同的线程在访问不同的Segment时,不会相互阻塞,从而避免了锁竞争的问题。
另外,ConcurrentHashMap还使用了一些其他的技术来保证线程安全,比如volatile关键字和CAS算法等。volatile关键字可以保证内存可见性,而CAS算法可以保证原子性操作,从而避免了多线程环境下的数据竞争问题。
总之,ConcurrentHashMap之所以是线程安全的,是因为它使用了多种技术来保证线程安全,包括锁分段技术、volatile关键字和CAS算法等。
阅读全文