JCIP_5_04_Java并发容器

并发容器

并发容器改进了同步容器的性能,通过并发容器来代替同步容器,可以极大地提高伸缩性并降低风险。

 

整理java.util.concurrent包关于集合的继承结构

1.Map

2.List

3.队列

 

 

Java容器主要有哪几类

Collection

1.1.List,有序的集合(可使用索引访问元素),可包含重复元素。

1.2.Set,不可包含重复元素的集合

1.3.Queue,保证多个元素顺序处理的集合(队列)

Map

1.4.Map,用于存储元素对的集合(Key-Value),不允许重复的键。

 

Java并发容器主要有哪几类

1.1.ConcurrentHashMap,支持并发的映射表,在很多应用场景下可替代同步且基于散列的Map

1.2.ConcurrentSkipListMap,支持并发的有序映射表,

1.3.ConcurrentSkipListSet,支持并发的有序集

1.4.ConcurrentLinkedQueue,支持并发的非阻塞队列。

1.5.CopyOnWriteArrayList,所有写操作都会对底层数组进行复制,用于在遍历操作为主要操作的情况下代替同步的List

1.6.CopyOnWriteArraySet

 

同步容器与并发容器的主要区别

同步容器将所有容器状态的访问都串行化,以实现它们的线程安全性。并发容器通过不同的处理策略如锁分段、CopyOnWrite、引入非阻塞操作来提供更高的并发性和伸缩性。

 

同步容器也有自身的应用场景

新加入了并发容器并不代表着完全可替代原有的同步容器,并发容器也有不适用的场景。并发容器采用的分段锁机制实现并发场景下高吞吐量,同步容器使用的是独占锁的方式保障并发场景下实例内部数据的线程安全。

例如对采用分段锁实现的并发容器在需要对容器进行独占访问时需要客户端加锁,而这种场景同步容器就有了用武之地。

HashtablesynchronizedMap相比,并发容器有着更多的优势和更少的劣势,大多数情况下使用并发容器来代替同步容器能进一步提高代码的可伸缩性。

整理并发容器与同步容器替代关系

需要依据具体的应用场景综合考量。

Map

ConcurrentHashMap

SortedMap

ConcurrentSkipListMap

SortedSet

ConcurrentSkipListSet

List

CopyOnWriteArrayList

Queue

ConcurrentLinkedQueue

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值