多线程下:Vector、Hashtable、ArrayList、LinkedList、HashMap 性能特征
来源:互联网 发布:中羽推荐淘宝店 编辑:程序博客网 时间:2024/06/06 03:34
最近在研究关于多线程环境下如何提升性能,在程序中执行最多的是“查询”,但同时也要维护数据的“添加”和“删除”
目前在 Hashtable 和 HashMap 中选择。
看了jdk文档,我们知道 Hashtable是同步的,而HashMap是不同步的。
所以一开始的时候,我采用的是 Hashtable,因为程序中80%的时间是在进行“查询”,所以为了提升速度,我改为 HashMap,经过几个小时的上线测试发现一个问题:
因为我在另一个单独的线程中每隔30秒对HashMap进行数据的维护(删除数据),在运行几个小时后发现这个线程发生死锁现象。
后来我又改回采用Hashtable,运行了10个小时,目前一切正常。
结论:看来在多线程的环境下,还得用Hashtable,虽说HashMap的性能能提高一些,但是因为本身是不同步的,所以不能使用在多线程下。当然,如果只是在多线程下进行简单的“查询”,不对数据进行“添加”和“删除”,那用HashMap是可以的,并且肯定能提高性能的。
下面是我在网上搜索到的别人网友写的一些相关内容:
1、如果线程要求安全,使用Vector,Hashtable
2、如果不要求线程安全,应使用ArrayList,LinkedList,HashMap
3、如果要求键值对,则使用HashMap、Hashtable
4、如果数据很大,又要线程安全考虑Vector
访问效率最高的是ArrayList,HashTable次之
如果你会进行大量的插入/删除操作,而不是对容器中的元素进行简单的访问,那就该用LinkedList了
在单线程下:vector和hashtable已经被ArrayList和hashMap代替,所以效率是最低的,
- 多线程下:Vector、Hashtable、ArrayList、LinkedList、HashMap 性能特征
- LinkedList,ArrayList,Vector,HashTable,HashMap
- LinkedList,ArrayList,Vector,HashTable,HashMap
- ArrayList & Vector & LinkedList & HashMap & HashTable
- 多线程集合Collections(Vector、Hashtable、ArrayList、LinkedList、HashMap )
- Vector & ArrayList ,ArrayList & LinkedList,Hashtable & HashMap
- HashMap、HashTable、ArrayList、LinkedList、Vector的区别
- HashMap、HashTable、ArrayList、LinkedList、Vector的区别 .
- ArrayList Vector LinkedList 区别,HashMap,Hashtable区别
- HashMap、HashTable、ArrayList、LinkedList、Vector区别
- Vector、ArrayList、LinkedList、HashMap、TreeMap、HashTable 区别
- HashMap、HashTable、ArrayList、LinkedList、Vector区别
- Vector和ArrayList Hashtable和HashMap ArrayList和LinkedList
- Vector与ArrayList/Hashtable & HashMap /ArrayList & LinkedList区别
- Vector与ArrayList、Hashtable和HashMap、ArrayList和LinkedList区别
- 两个常见问题: HashMap和Hashtable的区别 , ArrayList,Vector, LinkedList的存储性能和特性
- 常用对象API(ArrayList,Vector,LinkedList的存储性能和特性,HashMap和HashTable的区别)
- ArrayList,Vector, LinkedList的存储性能和特性HashMap和Hashtable的区别
- ImageField和FileField
- 打工和创业的区别
- SMP865X广告机之flash动画
- IP处理函数inet_aton()和inet_ntoa()
- 2010年终随笔之一 从年底三无谈起
- 多线程下:Vector、Hashtable、ArrayList、LinkedList、HashMap 性能特征
- virtual 关键字
- Apache OpenJPA 2.1.0 发布
- 开始写博客
- 27 款经典的CSS 框架
- java.lang.IllegalArgumentException: Document base XXXXX does not exist or is not a readable directory
- 关于openGL, openGL ES, openVG及android中2D调用关系的报告
- autotrace参数的解释
- VC:please enter the path for mfcs42d.pdb 提示解决方法