两个并发集合ConcurrentHashMap和CopyOnWriteArrayList知识点汇集

简介: ConcurrentHashMap和CopyOnWriteArrayList

1、ConcurrentHashMap和CopyOnWriteArrayList都是多线程里线程安全的类,是HashMap和ArrayList的多线程替代类。不过也不是绝对的数据一致性,只是弱一致性,比如size()等方法需要扫描全表的操作不保证数据一致。与HashMap不同的是,ConcurrentHashMap并不允许key或者value为null。

2、ConcurrentHashMap在1.7里采用的是分段锁Segment,默认并发度是16,自定义并发度的时候是取值为大于等于自定义值的最小2的幂次方的数字,每一个Segment里存放的都是类似于HashMap的数据结构,相当于多个HashMap的集合,只不过对每个HashMap的写操作有lock。对于并发度的设置不要过小也不要过大,过小的话锁竞争频繁,过大的话CPU cache命中率会下降,从而引起程序性能下降。

3、ConcurrentHashMap在1.8里抛弃了分段锁Segment,采用低层次的原子命令,使用无锁算法(CAS算法)。大体实现代码量很大,跟1.7完全不一样,感兴趣的自己看看。

目录
相关文章
|
2天前
|
存储 安全 NoSQL
5分钟从0到1探秘CopyOnWriteArrayList(满满干货~)
5分钟从0到1探秘CopyOnWriteArrayList(满满干货~)
|
1月前
|
存储 安全 算法
java多线程之并发容器集合
java多线程之并发容器集合
|
2月前
|
缓存 安全 Java
Java并发编程中的高效数据结构 - ConcurrentHashMap
本文将深入探讨Java并发编程中的一种高效数据结构 - ConcurrentHashMap。我们将详细介绍ConcurrentHashMap的基本原理,包括其设计思路、实现方式以及如何在多线程环境下提供高效的并发访问。同时,我们还将通过实例代码演示如何使用ConcurrentHashMap来优化并发程序的性能。
|
3月前
|
存储 安全 Java
Java并发基础:CopyOnWriteArrayList全面解析
CopyOnWriteArrayList类的最大优点在于读取时无需加锁,非常适合读多写少的并发场景,由于其写操作通过复制底层数据来实现,从而保证了读取数据的一致性和高效性,此外,它简单易用,是快速实现线程安全列表的不错选择,CopyOnWriteArrayList在读操作占主导的场景下,能够提供出色的性能和稳定性。
Java并发基础:CopyOnWriteArrayList全面解析
|
5月前
|
存储 算法 安全
认真学习Java集合之HashMap的实现原理
认真学习Java集合之HashMap的实现原理
31 0
认真学习Java集合之HashMap的实现原理
|
5月前
|
缓存 算法 Java
认真学习Java集合之LinkedHashMap的实现原理
认真学习Java集合之LinkedHashMap的实现原理
44 0
认真学习Java集合之LinkedHashMap的实现原理
|
5月前
|
Java
认真学习Java集合之TreeMap的实现原理
认真学习Java集合之TreeMap的实现原理
26 0
|
5月前
|
安全 容器
线程安全的集合类(ConcurrentHashMap面试超高频考点)
线程安全的集合类(ConcurrentHashMap面试超高频考点)
31 0
线程安全的集合类(ConcurrentHashMap面试超高频考点)
|
10月前
|
安全 Java 数据安全/隐私保护
JUC基础(四)—— 并发集合
JUC基础(四)—— 并发集合
91 0
|
12月前
|
存储 安全 Java
【JUC基础】11. 并发下的集合类
我们直到ArrayList,HashMap等是线程不安全的容器。但是我们通常会频繁的在JUC中使用集合类,那么应该如何确保线程安全?