【发布时间】:2014-02-24 19:01:22
【问题描述】:
当我们说哈希表是同步的时,它的真正含义是什么? 另外,Synchronized HashMaps和Hashtables有什么区别,应该用哪一个?
【问题讨论】:
-
你读过每个类的javadoc和oracle java并发教程吗?
当我们说哈希表是同步的时,它的真正含义是什么? 另外,Synchronized HashMaps和Hashtables有什么区别,应该用哪一个?
【问题讨论】:
旧的 Java Hashtable 类是线程安全的——它受到保护,因此多个线程不会因为试图同时使用它而损坏它。 HashMap 没有这种保护,因为在大多数情况下,要保护的不仅仅是哈希表访问,而是围绕该访问的逻辑......如果用户要实现自己的同步,则在 hashmap 成本中再次执行没有功能增益的性能。
一个很好的Java多线程编码教程会告诉你更多synchronized代码的含义和使用。
【讨论】: