热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HashMap异步和Hashtable同步啥意思?

1.我再看HashMap和Hashtable总结的时候,上面说HashMap的特点是异步而Hashtable的特点是同步啥意思?2.还有ArrayList特点是异步和Vector的特点是同步,到底
1.我再看HashMap和Hashtable总结的时候,上面说HashMap的特点是异步而Hashtable的特点是同步啥意思?
2.还有ArrayList特点是异步和Vector的特点是同步,到底啥意思?
兄弟分不多了,呵呵.

17 个解决方案

#1


同步是安全,异步不是安全的 !

#2


同步指多线程是否安全。

#3


同步指多线程安全。
异步指多线程不安全

#4


引用 3 楼 cccp21 的回复:
同步指多线程安全。 
异步指多线程不安全

#5


主要在多线程时有区别。
多线程时实现了同步的也就是实现了synchronized方法。
可以在操作时防止被其它线程抢占而产生数据错误。
在其它方面没有什么区别。
不用多线程编程时尽量不用同步的。

#6


集合和数组的区别?
集合当中可以存放什么数据?
那么能不能用Object[]代替集合?

Collection接口的实现类所通用的方法
a> add() 向集合内添加元素
b> size() 获得元素个数
c> iterator() 获得迭代器
(*) get(int index) 方法只能用于有序集合!

1 ArrayList Vector LinkedList
以上三种集合是List接口的实现类 所以他们拥有List的特征
有序(添加的顺序)!不唯一!
他们三者的用法很相似 但是要根据不同的需求灵活的选择正确的集合
ArrayList /TreeSet/HashMap/LinkList非线程安全 Vector/HashSet/Hashtable 线程安全
ArrayList 数组实现 LinkedList 双向循环链表 

2 HashSet 
HashSet是Set接口的实现类 Set集合特征是无序切唯一
取出集合中元素的时候 没有任何规律可循
HashSet如何保证自己唯一的?
equals(Object obj) hashCode() -> 指定比较规则!

3 TreeSet
TreeSet是SortedSet接口的实现类 SortedSet特征:有序 唯一
它的底层实现采用树状数据结构 在新元素添加进集合的时候,就对他的位置进行了比较排序 从而时刻保证集合当中元素有序!
TreeSet又是如何保证自己唯一的?
Comparable compareTo(Object obj) 
or
Comparator compare(Object o1,Object o2)
在比较的方法当中 不但确定了排序规则 还进一步排除了重复元素

#7


因为java本身是支持多线程的,运行程序的同时会有同时多个线程进行请求.
对于共享(静态的)数据会因为不同线程的请求而导致结果不一致。
同步其实就是相当于锁的作用. 

#8


这个同步,异步是指线程同步,线程异步。

线程同步在多线程中非常有用,它能够防止多个不同线程同时请求而可能造成的数据不一致。
在方法名前面加上修饰符synchronized,这个方法就是线程同步的。

在Hashtable中,所有的public方法都加上了synchronized,所以说Hashtable是同步的,而HashMap没有,
所以HashMap是异步的。

#9


同步就是在多个一个对象被多个线程访问的时候,不会出错。
如connection ,线程1执行create connection;线程2执行 connection.close();线程1如果没有执行完,就被线程2close()掉了,就要出错,这就是异步。
如果标识为同步,该对象会加上关键字synchronized,意思是锁定对象,在同一时刻只有一个线程可以访问,其他线程处于等待状态,直到该线程执行完。

#10


简单的讲,

异步就是可以同时多个线程修改HashMap,相对于HashTable就只能一个线程来更改。

很明显多个线程同时并发速度会比单个线程来的快,但是多线程就明显不安全了,因为有多个人在修改一个东西,这东西就时不时的变化,

所以用HashMap还是HashTable,看你在什么场合下用,但多线程程序下,要求数据统一性很高,那就用HashTable

#11


学习中

#12


线程问题

#13


很好,再次学习了·~

#14


一个是线程安全的  一个不是线程安全的

#15


重温面试题

楼上有好几楼的回复都相当清楚了

#16


楼主若想理解的更输入建议看一本《数据结构》的书

#17


我刚查看了下API文档,hashtable类中许多public方法都没有synchronized修饰啊?你怎么这么说?

推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • HashTable与ConcurrentHashMap均可实现HashMap的功能,对外提供了键值对存储的数据结构。但是在内部结构及实现上有何区别,性能上的差异到底在哪里又是如何导致的 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复hashMap是hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • OO第一单元自白:简单多项式导函数的设计与bug分析
    本文介绍了作者在学习OO的第一次作业中所遇到的问题及其解决方案。作者通过建立Multinomial和Monomial两个类来实现多项式和单项式,并通过append方法将单项式组合为多项式,并在此过程中合并同类项。作者还介绍了单项式和多项式的求导方法,并解释了如何利用正则表达式提取各个单项式并进行求导。同时,作者还对自己在输入合法性判断上的不足进行了bug分析,指出了自己在处理指数情况时出现的问题,并总结了被hack的原因。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 哈希表(HashTable)的开放定址法和链地址法的实现
    散列表(Hashtable,也叫哈希表),是根据关键码值(Keyvalue)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速 ... [详细]
  • hashmap线程不安全允许有null的键和值效率高一点、方法不是Synchronize的要提供外同步有containsvalue和containsKey方法HashMap是Java1 ... [详细]
author-avatar
老屋时光_503
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有