HashMap线程不安全原因
线程不安全原因:
JDK1.8中,由于多线程堆Hashmap的put操作导致线程不安全:假设两个线程A和B都对HashMap进行put操作,并且哈希函数计算出的下标相同,当线程执行完哈希冲突判断后打算插入数据时由于时间片耗尽挂起,而线程B得到时间片后进行成功插入。当线程A获得时间片后进行插入,因为已经判断过哈希冲突所有不进行判断,而是直接进行插入导致线程B数据被覆盖,从而线程不安全。
线程不安全原因:
JDK1.8中,由于多线程堆Hashmap的put操作导致线程不安全:假设两个线程A和B都对HashMap进行put操作,并且哈希函数计算出的下标相同,当线程执行完哈希冲突判断后打算插入数据时由于时间片耗尽挂起,而线程B得到时间片后进行成功插入。当线程A获得时间片后进行插入,因为已经判断过哈希冲突所有不进行判断,而是直接进行插入导致线程B数据被覆盖,从而线程不安全。
相关推荐