java-collection
iteye_5504
这个作者很懒,什么都没留下…
展开
-
源码剖析之CopyOnWriteArrayList
CopyOnWriteArrayList:jdk1.5新增的线程安全的ArrayList实现。 [b]使用场景:读取频繁,写较少。 理由:底层的安全性 本质上是依赖于线程读取的数据副本来实现的。因此每次写都是要复制底层数组数据的,如果写频繁势必会造成大量的性能消耗。 如果写非常频繁,那么可以根据实际情况选择:vector 或者Collections.synchronizedList获取同...2013-05-20 16:19:29 · 58 阅读 · 0 评论 -
源码剖析之CopyOnWriteArraySet
CopyOnWriteArraySet :是基于CopyOnWriteArrayList 的实现。只是在添加之前先判断是否已经存储相关记录。 注意:此Set的实现和普通的HashSet 已经相差甚远了。HashSet 是基于HashMap的实现。 从实现的角度就能看出CopyOnWriteArraySet 的使用条件和list的血缘更近,使用的场景也更近!! 它最适合于具有以下特...2013-05-20 17:31:15 · 72 阅读 · 0 评论 -
源码分析之 ConcurrentHashMap
关于hash [url]https://www.oschina.net/translate/how-to-implement-javas-hashcode-correctly[/url] jdk提供的线程安全的类似HashMap实现的数据结构:ConcurrentHashMap [b]功能特点:[/b] 1、具备HashMap的一般规范,和HashMap的基本实现原理一致。(底层数...2013-05-20 19:57:06 · 56 阅读 · 0 评论 -
ConcurrentModificationException 异常的抛出
ConcurrentModificationException 异常是使用java集合类经常抛出的一种异常。 这种异常常被描述为:快速失败异常,一般是我们程序错误使用导致的,很少会故意允许这种异常发生已保证逻辑上的完整。 那下面讨论什么时候会发生这种异常呢? 以ArrayList为例! 1、单线程中,一边遍历(forEach 和 list.iterator()),一遍删增数据。 ...2013-05-21 19:05:12 · 64 阅读 · 0 评论 -
源码剖析之ArrayBlockingQueue
ArrayBlockingQueue 是jdk1.5 新提供的阻塞队列,实现了固定大小的队列。 功能: 1、阻塞的效果 。put时如果元素已经满,那么阻塞,get时 如果队列为空,那么阻塞。 2、是实现生产者消费者模型的极好的备选工具。 实现依赖: [b]1、lock锁(内存的可见性、互斥访问、限制编译器的代码优化调整) 2、Condition条件通知(线程间的协作)[/b] ...2013-06-05 23:36:30 · 68 阅读 · 0 评论 -
CopyOnWriteArrayList再续
相关文章 [url]http://wangxinchun.iteye.com/blog/1872212[/url] CopyOnWriteArrayList 适合读频繁,写不频繁的情况,最重要的是如果list中的数据量非常大,请不要使用这个,那在写的时候复制到代价将会非常大。 这时可以考虑使用Vector 或者collections.synchronizedlist 。 但是这样读...2015-03-21 12:25:30 · 59 阅读 · 0 评论