在哪里定义JAVA HashTable对象将被同步?

时间:2012-12-19 18:06:34

标签: java multithreading hashtable synchronized

起初我认为HashTable的所有方法都是同步的。查看了java doc,发现没有一个方法被声明为synchronized。然后将JAVA HashTable对象确切定义为同步?

5 个答案:

答案 0 :(得分:3)

大多数方法都是同步的。如果查看源文件,可以看到同步关键字。

答案 1 :(得分:3)

如果查看Hashtable的{​​{3}},可以看到我们用于迭代或添加或删除的类的每个方法都是synchronized,因此我们可以说Hashtable已同步

答案 2 :(得分:1)

class description州的最后一行

  

从Java 2平台v1.2开始,这个类被改进以实现Map接口,使其成为Java Collections Framework的成员。 与新的集合实现不同,Hashtable已同步。如果不需要线程安全实现,建议使用HashMap代替Hashtable。如果需要线程安全的高度并发实现,那么建议使用ConcurrentHashMap代替Hashtable。

(强调补充)

答案 3 :(得分:1)

Hashtable是原始实用程序集合之一,所有这些都是同步的。从所有方法之前的Javadoc描述开始:“从Java 2平台v1.2开始,这个类已被改进以实现Map,因此它成为Java集合框架的一部分。与新的集合实现不同,Hashtable是同步的。 “

答案 4 :(得分:1)

在javadoc中:java.util.Hastable:

  

与新的集合*实现不同,{@code Hashtable}是   同步。

方法已同步!