社区
Java SE
帖子详情
关于hashmap内存不可见有环的问题
Charcla
2019-04-01 09:29:33
我有一点困惑,就是jdk中并没有设置volatite,那么这个数组就是不可见的,那么线程A,B也应该是分别复制了一个值到自己的本地内存,那么线程B修改了这个数组,线程A用的也是自己在线程B修改前就从主内存复制到本地的,为什么还会受到线程B的影响?
原贴地址:https://blog.csdn.net/hhx0626/article/details/54024222
...全文
56
回复
打赏
收藏
关于hashmap内存不可见有环的问题
我有一点困惑,就是jdk中并没有设置volatite,那么这个数组就是不可见的,那么线程A,B也应该是分别复制了一个值到自己的本地内存,那么线程B修改了这个数组,线程A用的也是自己在线程B修改前就从主内存复制到本地的,为什么还会受到线程B的影响? 原贴地址:https://blog.csdn.net/hhx0626/article/details/54024222
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hashmap
不释放空间_
HashMap
内存
内存
溢出
问题
内存
溢出
内存
溢出就是
内存
超出了JVM虚拟机的
内存
容量,导致出现了java.lang.OutOfMemoryError异常,如下图所示:image.png示例演示演示代码如下:/*** 演示
内存
泄露*/public class
HashMap
OverTest {public static void main(String[] args) {Map map = new
HashMap
(1000);in...
HashMap
形成环的原因
1.前言 关于1.7版本
hashMap
形成环的原因网上有很多说明,无非就是a指向b,二次循环b指向a,形成环了。但是形成过程真的是众说纷纭,眼花缭乱,各有各的说法(wtf!!!)在此,我将按照源码的方式将形成环的过程好好梳理一番。 2.形成环的过程 2.1 环嘛,当然是在resize的时候形成的,否则你一直插插插(put)最多也就是数据出错的
问题
,在此不解释 2.2 先看resize方法,如下图 没什么好说的,创建了一个2倍大小的newTable,然后在transfar里对它进行修改,把原来的
HashMap
为什么线程不安全
一、学习目标 1、
HashMap
线程不安全原因: 原因: JDK1.7 中,由于多线程对
HashMap
进行扩容,调用了
HashMap
#transfer(),具体原因:某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失。 JDK1.8 中,由于多线程对
HashMap
进行put操作,调用了
HashMap
#putVal(),具体原因:假设两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的,当线程A执行
好多人都不知道的:
HashMap
链表成环的原因和解决方案
前言 在 JDK7 版本下,很多人都知道
HashMap
会有链表成环的
问题
,但大多数人只知道,是多线程引起的,至于具体细节的原因,和 JDK8 中如何解决这个
问题
,很少有人说的清楚,百度也几乎看不懂,本文就和大家聊清楚两个
问题
: JDK7 中
HashMap
成环原因 JDK8 中是如何解决的。 另外本人整理收藏了20年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,下方只是部分截图 想要资料的话也可以点击直接进入:暗号:csdn,免费获取。 JDK7 中
HashMap
成
HashMap
线程不安全
问题
以及解决方法
之前的博客分析了
HashMap
的相关
问题
,本篇博客讲解了一些解决方案
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章