请说明 HashMap 在并发场景下的线程安全风险,以及有哪些替代方案。
考察说明
考察对 HashMap 并发失效机制的理解及线程安全替代方案的选择能力
回答思路
- 指出 HashMap 在多线程下可能出现的覆盖、丢失、死循环等问题
- 能解释 JDK 1.7 与 1.8 在并发问题的差异,如头插法导致的环形链表
- 说明 Hashtable、Collections.synchronizedMap、ConcurrentHashMap 各自的适用场景
- 能结合并发度、读多写少等因素给出选型理由
考察对 HashMap 并发失效机制的理解及线程安全替代方案的选择能力