-2

一开始我以为所有的方法HashTable都是同步的。查找java doc,发现没有一个方法被声明为同步的。那么一个 JAVAHashTable对象究竟在哪里被定义为同步呢?

4

5 回答 5

3

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

于 2012-12-19T18:10:30.663 回答
3

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

于 2012-12-19T18:11:08.350 回答
1

类描述的最后一行说明

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

(重点补充)

于 2012-12-19T18:10:26.717 回答
1

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

于 2012-12-19T18:10:34.320 回答
1

在 javadoc: 中的 java.util.Hastable:

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

方法是同步的!

于 2012-12-19T18:11:34.627 回答