在Hashtable中方法是同步的,而不是表变量.这是否意味着put和putIfAbsent(或remove)可以并行运



Java中哈希表具有同步的单个方法,而不是表实例变量。这意味着put和putIfAbsent(或remove)仍然可以并行运行,对吗?

这意味着应该使用其他同步选项来实现绝对线程安全或写入安全,使用Collections.synchronizedMap(对象互斥级同步)或ConcurrentHashMap(段级同步)!

如果是这样,我们不应该简单地说Hashtable是线程安全的。不是吗?

我想你误解了声明一个方法'synchronized'的含义。这些方法在对象实例上是同步的,因此在一个特定的对象实例上一次只能执行一个方法。

最新更新