看啥推荐读物
专栏名称: JAVA葵花宝典
java知识和技术查漏补缺,空余时间学习碎片化知识,分享开发、运维、架构等综合性知识,助力职场最后一公里与职业进阶,每天看宝典,就选它。
今天看啥  ›  专栏  ›  JAVA葵花宝典

啥?HashMap 1.8 还有死循环?你逗我呢!

JAVA葵花宝典  · 公众号  · Java  · 2020-09-20 15:00
是否你听说过JDK8之后HashMap已经解决的扩容死循环的问题,虽然HashMap依然说线程不安全,但是不会造成服务器load飙升的问题。然而事实并非如此。少年可曾了解一种红黑树成环的场景,=v=今日,在查看监控时候发现,某一台机器load飙升感觉问题不对劲,ssh大法登陆机器,top,top -Hp,jstack,jmap四连击保存下来堆栈,cpu使用最高的线程,内存信息准备分析。首先查看使用最耗费cpu的线程堆栈信息cat stack | grep -i 34670 -C10 --color我勒个去,HashMap,猜测八成死循环了,但是我们使用的JDK8,在8中通过栈封闭的链表替换,解决了扩容死循环的问题。疑惑,继续往下看。根据堆栈信息,root方法是问题所在,点开HashMap源码好嘛,load飙高,代码有个for语句,我觉得铁定死循环了,看代 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照