社区
C#
帖子详情
Hashtable Dictionary 多线程性能
yanx8844
2010-04-20 09:26:04
在网络上找到很多关于两种结构性能上的说明。
可是都是单线程的测试。
在多线程上Hashtable.Synchronized(new Hashtable())是线程安全的,因此读写不需要Lock,
Dictionary需要Lock才能安全的读写,
是否有人做过多线程上两种结构性能上的差距。
...全文
659
5
打赏
收藏
Hashtable Dictionary 多线程性能
在网络上找到很多关于两种结构性能上的说明。 可是都是单线程的测试。 在多线程上Hashtable.Synchronized(new Hashtable())是线程安全的,因此读写不需要Lock, Dictionary需要Lock才能安全的读写, 是否有人做过多线程上两种结构性能上的差距。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
daddi
2010-07-21
打赏
举报
回复
在多线程上,dictionary 和 hashtable 差不多。
在key为数字的时候,我测试过100万个键值对,
dictionary耗内存15M,hashtable耗内存40M,
dictionary写入用时297ms,读取100万次用时141ms
hashtable 写入用时547ms,读取100万次用时172ms
dictionary使用读写锁进行线程锁定,也就是说写的时候是不允许其它线程读的,但是读时可以多线程同时读。因为dictionary散列在写时内部结构会发生变化,仅仅只锁写可能会出错(尽管几率很小),所以需要用读写锁。若只是锁住写,那么读的性能还能提升一倍以上,写的性能变化不大。因为散列读的速度非常快,一大半时间都用在锁上面了,而写需要内存扩容等操作,需要的时间大于锁。
hashtable是使用这个来进行线程锁定 Hashtable.Synchronized(New Hashtable())
默认线程安全应该是指的写安全,和锁定dictionary的写类似。Synchronized之后和dictionary读写锁定类似。对于线程安全要求非常高的程序,一定要读写都锁定。
对于普通要求,可以只锁定写,在写的时候,读有可能出错,但是不会破坏链表。
yanx8844
2010-04-23
打赏
举报
回复
最后一顶、、、、、、、
yanx8844
2010-04-22
打赏
举报
回复
.......................
大狼尾巴
2010-04-20
打赏
举报
回复
仅仅只在单线程上用过 Dictionary的人飘过。。。关注一下。。。
yanx8844
2010-04-20
打赏
举报
回复
ding.........
Hashtable
和HashMap的区别:
Hashtable
和HashMap的区别: ...即是说,在
多线程
应用程序中,不用专门的操作就安全地可以使用
Hashtable
了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:
HashMap和
Hashtable
的区别
Hashmap是开发中用的比较多的一种集合,是线程不安全的,
Hashtable
的方法上大多都加了synchronized所以是线程安全的,所以效率并不高。这也是它们最大的不同。 2.
Hashtable
继承的类和实现的接口:(
Dictionary
类...
java面试笔试题大汇总.doc
最大的不同是,
Hashtable
的方法是Synchronize的,而HashMap不是,在多个线程访问
Hashtable
时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable
和HashMap采用的hash/rehash算法都大概...
125条常见的java面试笔试题大汇总
HashMap和
Hashtable
的区别...不是,在多个线程访问
Hashtable
时,不需要自己为它的方法实 现同步,而HashMap 就必须为之提供外同步。
Hashtable
和HashMap采用的hash/rehash算法都大概一样,所 以
性能
不会有很大的差异。
java程序员面试题
最大的不同是,
Hashtable
的方法是Synchronize的,而HashMap不是,在多个线程访问
Hashtable
时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable
和HashMap采用的hash/rehash算法都大概...
C#
110,528
社区成员
642,571
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章