面试题答案
一键面试- 同步机制实现:
Hashtable
的几乎所有的公共方法(如put
、get
、remove
等)都被声明为synchronized
关键字修饰。例如:
public synchronized V put(K key, V value) { // 具体实现代码 }
- 这意味着当一个线程调用这些方法时,它会首先获取
Hashtable
实例对象的锁。只有获取到锁,线程才能执行该方法中的代码,其他线程若想调用这些同步方法,必须等待锁的释放。
- 多线程环境下保证数据一致性:
- 由于方法被
synchronized
修饰,同一时间只有一个线程能够进入同步方法执行操作。 - 比如在
put
操作时,线程获取锁后开始插入键值对,在操作完成并释放锁之前,其他线程无法进行插入、删除或获取等操作,从而避免了数据竞争。这就保证了在多线程环境下,Hashtable
的数据一致性,即不会出现一个线程修改数据的同时另一个线程读取到不一致状态的数据。
- 由于方法被