通信人家园

标题: 特别喜欢打电子竞技  [查看完整版帖子] [打印本页]

时间:  2021-1-8 14:59
作者: 1137714643     标题: 特别喜欢打电子竞技

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







通信人家园 (https://www.txrjy.com/) Powered by C114