Java容器(集合)类(下)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java容器(集合)类(下)

Java容器(集合)类(下)

 2013/8/31 13:09:21  julydave  程序员俱乐部  我要评论(0)
  • 摘要:接着上篇文章给出的Java在JDK1.2之后在java.util包中给出的集合类/容器类以及数组的应用整理。也考虑和讨论了并发一致性的问题。其实在高并发的情况下,仅仅靠java.util包中提供的最基本的容器往往不能满足具体应用场景的需求。在JavaSE5之后,也就是JDK1.5出来之后,在java.util.concurrent包中又提供了很多并发场景下方便使用的容器/集合工具类。这其中包括CopyOnWriteArrayList、CopyOnWriteArraySet
  • 标签:Java

接着上篇文章给出的Java在JDK1.2之后在java.util包中给出的集合类/容器类以及数组的应用整理。也考虑和讨论了并发一致性的问题。

?

其实在高并发的情况下,仅仅靠java.util包中提供的最基本的容器往往不能满足具体应用场景的需求。

?

在JavaSE5之后,也就是JDK1.5出来之后,在java.util.concurrent包中又提供了很多并发场景下方便使用的容器/集合工具类。这其中包括CopyOnWriteArrayListCopyOnWriteArraySetConcurrentHashMapConcurrentLinkedQueueBlockingQueue等。

?

在CopyOnWriteArrayList中为了保证数据一致性,每当有新的改变的时候,会利用写时拷贝(Copy On Write),复制出一份新的List出来。而已经使用旧的拷贝的引用的,还会继续使用旧的。

?

同时为了保证并发情况下的执行效率,像ConcurrentHashMap中还用到了Segment进行分段,减小了锁粒度,提高了并发性。

?

BlockingQueue及其具体的各种实现类,则保证了队列为空时消费者的阻塞和队列为满时生产者的阻塞,在“生产者-消费者”模式下得到了广泛的应用。

?

ConcurrentLinkedQueue是旨在大并发量情况下,维持队列的基本功能,保持性能的工具类。

?

接着上篇,在本人的小站上,对Java的并发容器类/集合类进行了一些分析和整理,包括用法要点和源码分析。下面列表中的文章主要是考虑并发的情况下,对java.util.concurrent包中的容器类/集合类工具的分析整理:

?

  • CopyOnWriteArrayList源码分析整理
  • ConcurrentHashMap源码分析整理
  • ConcurrentLinkedQueue源码分析整理
  • BlockingQueue及其各个实现的分析整理

欢迎大家阅读并拍砖,谢谢!

发表评论
用户名: 匿名