hashmap动态扩容死循环_HashMap扩容

hashmap动态扩容死循环_HashMap扩容HashMap扩容死循环问题源码分析问题(jdk1.7)一、首先hashmap单线程正常扩容遍历每个数组,依次遍历每个数组的链表,根据头插法由原来的1,2,3变为了3,2,1二、hashmap多线程扩容死循环问题两个线程e1,e2此时线程一先执行,但线程二的指向发生改变,改为线程变换后的具体存储;初始的e2指向0号位的1,但经过线程一的变换指向了2号位的1了,next也发生改变线程二开始在线程一的基础存储,当next2指向空时。e.next=newTable[i],也就

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

HashMap扩容死循环问题源码分析问题(jdk1.7)

一、首先hashmap单线程正常扩容

遍历每个数组,依次遍历每个数组的链表,根据头插法由原来的1,2,3
变为了3,2,1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二、hashmap多线程扩容死循环问题

两个线程 e1 ,e2
在这里插入图片描述
此时 线程一先执行,但线程二的指向发生改变,改为线程变换后的具体存储;初始的e2指向0号位的1,但经过线程一的变换指向了2号位的1了,next也发生改变

在这里插入图片描述在这里插入图片描述
线程二开始在线程一的基础存储,

在这里插入图片描述

在这里插入图片描述

当next2指向空时 。e.next=newTable[i],也就重新指回2,形成循环链表;
在这里插入图片描述

在这里插入图片描述学习自:https://www.bilibili.com/video/BV1z54y1i73r

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191171.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库修改主键类型

    数据库修改主键类型

    2021年7月17日
    59
  • docker镜像操作_docker主要特性

    docker镜像操作_docker主要特性前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月29日
    5
  • linux vim dd命令_vim命令和vi的区别

    linux vim dd命令_vim命令和vi的区别Vim是从vi发展而来的文本编辑器,可以用颜色或底线等方式来显示一些特殊的信息。Vim是Linux中必不可少的工具,搭建网站修改配置文件时经常用到。本教程介绍Vim的模式和常用操作。背景信息Vim的各个模式介绍如下表所示:模式作用模式转换普通模式(NormalMode)在该模式下,您可以复制、粘贴、删除字符或行。运行vim打开文件时,即进入普通模式。在其他四个模式下,按Esc键…

    2022年9月22日
    2
  • android 资源图片加密

    android 资源图片加密android中有些重要的图片资源可以选择加密,因为不管是加固还是混淆,资源文件的图片始终能被看到,加密图片步骤1. 创建java项目安作为加密图片的工具,新建一个project,在main方法里调用加密方法,加密方法里传一个路劲,这个路劲是电脑里图片的路劲publicstaticvoidmain(String[]args){//调用加密方法KMD

    2022年6月21日
    36
  • Fiddler实现手机抓包——小白入门

    Fiddler实现手机抓包——小白入门手机用fiddler抓包电脑最好是笔记本,这样能和手机保持统一局域网内;其他不多说,直接说步骤了。一.对PC(笔记本)参数进行配置  1.配置fiddler允许监听到https(fiddler默认只抓取http格式的)        打开Fiddler菜单项Tools->TelerikFiddlerOptions->HTTPS,        勾选Capt…

    2022年4月20日
    133
  • 【c语言】小程序游戏——飞机游戏(一)

    【c语言】小程序游戏——飞机游戏(一)下面来介绍一个简单的游戏,其中用到的c语言知识属于基础内容,所以特别容易上手~~~~~~~飞机游戏~~~~~~~~~首先按照常理我们知道,肯定要在界面上绘制出一个飞机,我们用“*”符号来简单代表就OK。我们知道,在窗口的坐标系原点是在窗口左上角的,…

    2022年5月19日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号