<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          啥?HashMap 1.8 還有死循環(huán)?你逗我呢!

          共 1111字,需瀏覽 3分鐘

           ·

          2020-10-03 05:56


          是否你聽說過JDK8之后HashMap已經解決的擴容死循環(huán)的問題,雖然HashMap依然說線程不安全,但是不會造成服務器load飆升的問題。

          然而事實并非如此。少年可曾了解一種紅黑樹成環(huán)的場景,=v=

          今日,在查看監(jiān)控時候發(fā)現(xiàn),某一臺機器load飆升

          感覺問題不對勁,ssh大法登陸機器,top,top -Hp,jstack,jmap四連擊保存下來堆棧,cpu使用最高的線程,內存信息準備分析。

          首先查看使用最耗費cpu的線程堆棧信息
          cat stack | grep -i 34670 -C10 --color
          我勒個去,HashMap,猜測八成死循環(huán)了,但是我們使用的JDK8,在8中通過棧封閉的鏈表替換,解決了擴容死循環(huán)的問題。疑惑,繼續(xù)往下看。

          根據堆棧信息,root方法是問題所在,點開HashMap源碼
          好嘛,load飆高,代碼有個for語句,我覺得鐵定死循環(huán)了,看代碼情況只可能是兩個紅黑樹節(jié)點的父親節(jié)點相互引用才可以導致無法走出這個for語句。

          然而這都是我的猜測,我沒有證據。而且讓我追紅黑樹的代碼,也是需要耗費大量時間的事情,我需要快速驗證我的猜測。

          我之前dump下來了堆內存信息,我通過jhat 命令生成html的內存信息頁面
          然后輸入http://localhost:7000查看。

          我先找業(yè)務代碼中持有這個HashMap的對象,然后點進去查詢內部信息

          因為數據都放在table中,點擊Table字段,查看其內容
          table中存在唯一的一個TreeNode節(jié)點,這肯定是已經變成了紅黑樹了

          點進去查看


          點擊parent字段信息
          0x72745d828與0x72745d7b8兩個TreeNode節(jié)點的Parent引用都是對方。
          后續(xù)打算深入研究一下紅黑樹什么場景會造成這個原因。

          最后,無論什么并發(fā)場景請別使用HashMap,ConcurrentHashmap大法好~
          作者:Aaron_濤
          來源:blog.csdn.net/qq_33330687/article/details/101479385

          最后免費給大家分享50個Java項目實戰(zhàn)資料,涵蓋入門、進階各個階段學習內容,可以說非常全面了。大部分視頻還附帶源碼,學起來還不費勁!


          附上截圖。(下面有下載方式)。


          項目領取方式:

          掃描下方公眾號回復:50

          可獲取下載鏈接

          ???

          ?長按上方二維碼?2 秒
          回復「50」即可獲取資料


          點贊是最大的支持?

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黄片免费在线观看 | 日本a级视频 | 人人靠人人操 | 一区二区三区四区五区六区在线 | 自拍超碰人人人人 |