C114门户论坛百科APPEN| 举报 切换到宽版

亚星游戏官网

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

亚星游戏官网-yaxin222  新兵

注册:2020-1-2
发表于 2021-1-8 14:59:22 |显示全部楼层
1、put的时候导致的多线程数据不一一致。
这个问题比较好想象,比如有两个线程A和B,首先A希翼插入一个key-value对到HashMap中,
首先计算记录,所要落到的桶的索引坐标,然后获取到该桶里面的链表头结点,此时线程A的时
间片用完了,而此时线程B被调度得以实行,和线程A-样实行,只不过线程B成功将记录插到
了桶里面,假设线程A插入的记录计算出来的桶索引和线程B要插入的记录计算出来的桶索引是
-样的,那么当线程B成功插入之后,线程A再次被调度运行时,它依然持有过期的链表头但是
它对此-无所知,以至于它认为它应该这样做,如此-来就覆盖了线程B插入的记录,这样线程
B插入的记录就凭空消失了,造成了数据不一致的行为。


举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系大家 |网站地图  

GMT+8, 2024-11-27 03:58 , Processed in 0.075016 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部
XML 地图 | Sitemap 地图