为什么Hashtable类的方法是同步的

时间:2017-11-28 20:46:50

标签: java hashtable synchronized

默认情况下,Web应用容器会为每个请求处理/创建单独的线程。在这种情况下

  1. Web应用容器如何为每个请求创建一个线程。
  2. 让我们说T1和T2是同时或多或少运行的请求/线程,并且下面的语句将为每个线程/请求创建一个新对象。 Hashtable ht = new Hashtable(); 即每个线程都将获得自己的哈希表实例。

    t1 - >将获得哈希表的实例/内存

    t2 - >将获得哈希表的实例/内存

    因为,两个线程都不共享...不确定为什么需要同步哈希表方法。

1 个答案:

答案 0 :(得分:2)

Hashtable是一个非常古老的类,自Java 1.0以来就存在。虽然它不是正式@Deprecated,但它被认为是过时的,您应该使用HashMap代替。或者,正如javadoc雄辩地说的那样:

  

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