社区
Java SE
帖子详情
Collections.synchronizedMap和Hashtable区别
徐东1983
2016-06-28 09:19:30
请问Collections.synchronizedMap和Hashtable有什么区别,看了下源码,两上Map都是获取的对象锁,如果是这样的话,那这两两上MAP不是一样了吗?是不是我哪里理解的不对,请高手指教。
...全文
187
2
打赏
收藏
Collections.synchronizedMap和Hashtable区别
请问Collections.synchronizedMap和Hashtable有什么区别,看了下源码,两上Map都是获取的对象锁,如果是这样的话,那这两两上MAP不是一样了吗?是不是我哪里理解的不对,请高手指教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
徐东1983
2016-06-28
打赏
举报
回复
知道了,多谢,其实是我没把HashMap和Hashtable的区别搞清楚,受教
天神羽翼
2016-06-28
打赏
举报
回复
最大区别是synchronizedMap是HashMap的加强版(实现了同步),Hashtable则是基于Dictionary抽象类本身就是线程安全的,所以前者key可以传null值,而后者key和value都不能传null值。
Java理论与实践:并发集合类
本文介绍了在Java类库中出现的第一个关联的集合类是
Hashtable
,它是JDK 1.0的一部分。
Hashtable
提供了一种易于使用的、线程安全的、关联的
map
功能,这当然也是方便的。然而,线程安全性是凭代价换来的――
Hashtable
的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。
Hashtable
的后继者Hash
Map
是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的基类和一个同步的包装器
Collections
.
synchronized
Map
,解决了线程安全性问题。
【面试系列】并发容器之ConcurrentHash
Map
微信公众号:放开我我还能学 分享知识,共同进步! 看你简历里写了 Hash
Map
,那你说说它存在什么缺点? 线程不安全 迭代时无法修改值 那你有用过线程安全的
Map
吗? 有,回答在哪用过。 没有,不过我了解过。 那你说说它们的实现。
Hashtable
Hashtable
本身比较低效,因为它的实现基本就是将 put、get、size 等各种方法加上
synchronized
锁。这就导致了所有并发操作都要竞争同一把锁,一个线程在进行同步操作时,其他线程只能等待,大大降低了并发操作的效率。
Collections
#
Synchronized
Map
同步包装器
Synchronized
Map
跟汤老师学Java(第13季):集合
本课程从零开始,以通俗易懂的方式讲解Java技术,手把手教你掌握每一个知识点。 真正做到零基础入门学习,适合初学者的教程! 课程内容包括: 1.集合简介 2.存储结构 3.集合相关API 4.List:ArrayList、LinkedList、Vector、Stack 5.Set:HashSet、TreeSet 6.
Map
:Hash
Map
、
Hashtable
、Properties 7.
Collections
工具类 教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!
java8源码-JavaRobot:Java学习笔记,JavaLearningNote
java8 源码 学习笔记(持续更新中) 所有文章均同步发布到微信公众号【JavaRobot】,关注微信公众号,及时得到文章推送,谢谢支持。 说明:如无特别说明,所有代码都基于JDK8 JavaSE(Java基础) Java Core 关键字
synchronized
关键字 Java String Java Arrays Java
Collections
Java 泛型 Java NIO Buffer Channel Selector Java 8 Features 源码解读 String源码系列 List源码系列 ArrayList LinkedList CopyOnWriteArrayList Vector
Map
源码系列 Hash
Map
LinkedHash
Map
ConcurrentHash
Map
Tree
Map
Hashtable
Set源码系列 HashSet LinkedHashSet TreeSet HashSet Concurrent源码系列 待完善 JVM(Java虚拟机) 类加载 垃圾回收算法 JavaConcurrent(Java并发系列) 【Java并发系列】
Java笔记_
Collections
.
synchronized
Map
、
Hashtable
与ConcurrentHash
Map
以下内容为从网上摘抄整理而来,仅用于本人知识积累
Collections
.
synchronized
Map
Collections
.
synchronized
Map
是怎么实现线程安全的? 在
Synchronized
Map
内部维护了一个普通对象
Map
,还有排斥锁mutex,如图
Collections
.
synchronized
Map
(new Hash
Map
<>(16)); 我们在调用这个方法的时候就需要传入一个
Map
,可以看到有两个构造器,如果你传入了mutex参数,则将对象排斥锁赋值为传入的.
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章