默认情况下,Web应用容器会为每个请求处理/创建单独的线程。在这种情况下
让我们说T1和T2是同时或多或少运行的请求/线程,并且下面的语句将为每个线程/请求创建一个新对象。 Hashtable ht = new Hashtable(); 即每个线程都将获得自己的哈希表实例。
t1 - >将获得哈希表的实例/内存
t2 - >将获得哈希表的实例/内存
因为,两个线程都不共享...不确定为什么需要同步哈希表方法。
答案 0 :(得分:2)
Hashtable
是一个非常古老的类,自Java 1.0以来就存在。虽然它不是正式@Deprecated
,但它被认为是过时的,您应该使用HashMap
代替。或者,正如javadoc雄辩地说的那样:
从Java 2平台v1.2开始,该类被改进以实现
Map
接口,使其成为Java Collections Framework的成员。与新的集合实现不同,Hashtable
是同步的。如果不需要线程安全实现,建议使用HashMap
代替Hashtable
。如果需要线程安全的高度并发实现,则建议使用ConcurrentHashMap
代替Hashtable
。