线程安全的集合有哪些(5类线程安全集合)

线程安全的集合有哪些(5类线程安全集合)-mikechen

线程安全的集合经常在Java面试被问到,以下是一些常见的线程安全集合,主要包含5类线程安全集合@mikechen

1.ConcurrentHashMap

ConcurrentHashMap是线程安全的哈希表实现,支持高并发读写操作。

在JDK1.7中ConcurrentHashMap采用了数组+Segment+分段锁的方式实现。

如下图所示:
线程安全的集合有哪些(5类线程安全集合)-mikechen

JDK8中ConcurrentHashMap参考了JDK8 HashMap的实现,进行全面升级。

如下图所示:

线程安全的集合有哪些(5类线程安全集合)-mikechen

 

2.CopyOnWriteArrayList

CopyOnWriteArrayList是线程安全的动态数组实现,它通过复制整个数组来实现并发修改的安全性。

Copy-On-Write简称COW,写入时复制,这个技术,准确的说应该是一种思想。
线程安全的集合有哪些(5类线程安全集合)-mikechen

当有线程对数组进行修改时,会先将原数组复制一份,在新数组上进行修改,完成后再将原数组指向新数组。

 

3.ConcurrentLinkedQueue

ConcurrentLinkedQueue是线程安全的链表队列实现,支持高并发的插入、删除和查找操作。

线程安全的集合有哪些(5类线程安全集合)-mikechen

 

它通过利用无锁的CAS操作来保证并发的安全性。

 

4.ConcurrentSkipListMap

ConcurrentSkipListMap是线程安全的跳表实现,支持高并发读写操作。它通过利用跳表的特性来保证并发的安全性,不同线程可以同时访问不同的节点,从而提高并发性能。

 

5.ConcurrentHashMap.KeySetView

ConcurrentHashMap.KeySetView是ConcurrentHashMap的键集合视图,也是线程安全的。

它通过ConcurrentHashMap的分段锁机制来保证并发的安全性,可以安全地进行迭代和修改操作。

需要注意的是,虽然这些集合是线程安全的,但在并发环境中仍然需要注意一些问题,比如数据的一致性和性能问题。

以上就是线程安全的集合的详解,更多线程安全,请查看:如何保证线程安全?5种常见方法详解

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法