京东gg
1、多线程 用哪个map
答:Hashtable内部的方法基本都使用了Sychronized关键字进行修饰,是线程安全的。
2、HashMap为什么不安全
HashMap没有使用使用保证线程安全的一些措施。
多线程对HashMap执行put操作时,会出现数据覆盖问题。假设A、B两个线程都在进行put操作,如果通过hash函数计算的插入下标是相同的,当线程A执行完hash碰撞检测之后,由于时间片耗尽而被挂起,然后线程B得到时间片后再该下标出插入了数据,完成了正常的插入,然后线程A获得时间片,由于之前已经进行了hash碰撞的判断,所以不会再进行判断直接进行插入,这就导致了线程B插入的数据被线程A覆盖了,从而线程不安全。