首页 > 试题广场 >

Hashtable是怎么实现线程安全的?

[问答题]
Hashtable是怎么实现线程安全的?

在Hashtable中的绝大部分方法都是使用synchronized进行修饰的。比如Hashtable 提供的几个主要方法,包括 get(), put(), remove() 等。不会出现两个线程同时对数据进行操作的情况,因此保证了线程安全性,但是也大大的降低了执行效率。

编辑于 2017-08-30 09:31:01 回复(0)
在Hashtable的源码里,put,get,contains等方法都加了 synchronized 关键字的。
public synchronized V get(Object key){}
public synchronized V put(K key, V value) {}
public synchronized V remove(Object key){}
发表于 2015-03-28 16:14:50 回复(0)
Hashtable是synchronized。 sychronized意味着在一次仅有一个线程能够更改Hashtable。就是说任何线程要更新Hashtable时要首先获得同步锁,其它线程要等到同步锁被释放之后才能再次获得同步锁更新Hashtable。
发表于 2015-01-05 11:35:49 回复(0)