多線程下TreeMap訪問造成CPU過載

最近發(fā)現(xiàn)webapp項目在客戶的server運(yùn)行幾個小時后检激,會出現(xiàn)整個Server運(yùn)行很慢,CPU高達(dá)100%纤子,剛開始一直認(rèn)為是哪里內(nèi)存泄露胞此,但一看該應(yīng)用占用的內(nèi)存并沒有一直增長,也保持在一個合理的狀態(tài)涩金。
在排查故障的過程中谱醇,發(fā)現(xiàn)代碼中使用public static TreeMap<String, String> treemap = new TreeMap<String, String>();來記錄狀態(tài)信息,并且發(fā)現(xiàn)multi thread put/get訪問該對象步做,就聯(lián)想到HashMap是非線程安全副渴,是否TreeMap也是呢全度?上某度一查煮剧,結(jié)果還真是。
那如何修改呢?Oracle官網(wǎng)http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6423457建議使用ConcurrentHashMap來替換勉盅,線程安全佑颇,并且查詢效率比TreeMap高。但由于項目中需要對該Map按自然順序或自定義順序遍歷鍵草娜,剛好需要用到TreeMap的特性--排序挑胸,因此可以在方法加syncronized 或者定義如下

public static Map<String,String> treemap = Collections.synchronizedMap(new TreeMap<String,String>());

修改后再在客戶server上運(yùn)行,該問題就解決了宰闰。
但這樣的做性能實在太差了茬贵,可以使用ConcurrentSkipListMap。這是一個支持高并發(fā)度的有序哈希表议蟆,并且是無鎖的闷沥,可在多線程環(huán)境下替代TreeMap。JDK1.6開始就已經(jīng)支持ConcurrentSkipListMap咐容。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舆逃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子戳粒,更是在濱河造成了極大的恐慌路狮,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚约,死亡現(xiàn)場離奇詭異奄妨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)苹祟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門砸抛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人树枫,你說我怎么就攤上這事直焙。” “怎么了砂轻?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵奔誓,是天一觀的道長。 經(jīng)常有香客問我搔涝,道長厨喂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任庄呈,我火速辦了婚禮蜕煌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诬留。我一直安慰自己幌绍,他們只是感情好颁褂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著傀广,像睡著了一般颁独。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伪冰,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天誓酒,我揣著相機(jī)與錄音,去河邊找鬼贮聂。 笑死靠柑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吓懈。 我是一名探鬼主播歼冰,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耻警!你這毒婦竟也來了隔嫡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤甘穿,失蹤者是張志新(化名)和其女友劉穎腮恩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體温兼,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秸滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了募判。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荡含。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖届垫,靈堂內(nèi)的尸體忽然破棺而出释液,到底是詐尸還是另有隱情,我是刑警寧澤敦腔,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站恨溜,受9級特大地震影響符衔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜糟袁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一判族、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧项戴,春花似錦形帮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽界斜。三九已至,卻和暖如春合冀,著一層夾襖步出監(jiān)牢的瞬間各薇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工君躺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留峭判,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓棕叫,卻偏偏與公主長得像林螃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子俺泣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,320評論 8 265
  • Java繼承關(guān)系初始化順序 父類的靜態(tài)變量-->父類的靜態(tài)代碼塊-->子類的靜態(tài)變量-->子類的靜態(tài)代碼快-->父...
    第六象限閱讀 2,143評論 0 9
  • 從三月份找實習(xí)到現(xiàn)在疗认,面了一些公司,掛了不少砌滞,但最終還是拿到小米侮邀、百度、阿里贝润、京東绊茧、新浪、CVTE打掘、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,184評論 11 349
  • 總是熬夜看手機(jī)华畏,這幾天感覺身體也是會有相應(yīng)的反應(yīng)。脖子左右旋轉(zhuǎn)的時候尊蚁,明顯的會聽到一種奇怪的聲音亡笑,好像是能聽到細(xì)胞...
    享受生命的饋贈閱讀 134評論 0 0
  • 清明時節(jié)雨紛紛,路上行人欲斷魂横朋。借問酒家何處有仑乌,牧童遙指杏花村。--杜牧 三月清明總有或大或小的雨琴锭,今天忽然想起以...
    夢水清涼閱讀 524評論 0 0