為啥要用HahSet?
假如我們現(xiàn)在想要在一大堆數(shù)據(jù)中查找X數(shù)據(jù)。LinkedList的數(shù)據(jù)結構就不說了,查找效率低的可怕。ArrayList哪,如果我們不知道X的位置序號,還是一樣要全部遍歷一次直到查到結果,效率一樣可怕。HashSet天生就是為了提高查找效率的。
背景
上午剛到公司,準備開始一天的摸魚之旅時突然收到了一封監(jiān)控中心的郵件。
心中暗道不好,因為監(jiān)控系統(tǒng)從來不會告訴我應用完美無 bug,其實系統(tǒng)挺猥瑣。
打開郵件一看,果然告知我有一個應用的線程池隊列達到閾值觸發(fā)了報警。
由于這個應用出問題非常影響用戶體驗;于是立馬讓運維保留現(xiàn)場 dump 線程和內存同時重啟應用,還好重啟之后恢復正常。于是開始著手排查問題。
分析
首先了解下這個應用大概是做什么的。
簡單來說就是從 MQ 中取出數(shù)據(jù)然后丟到后面的業(yè)務線程池中做具體的業(yè)務處理。
而報警的隊列正好就是這個線程池的隊列。
跟蹤代碼發(fā)現(xiàn)構建線程池的方式如下:
ThreadPoolExecutor executor = new ThreadPoolExecutor(coreSize, maxSize, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());; put(poolName,executor);
分享標題:一次因HashSet引起的并發(fā)問題詳解-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://chinadenli.net/article26/dsihcg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、商城網(wǎng)站、網(wǎng)站建設、品牌網(wǎng)站設計、外貿網(wǎng)站建設、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)