github 熱門開源作者
來自:,其實系統挺猥瑣。
執行緒和記憶體同時重啟應用,還好重啟之後恢復正常。於是開始著手排查問題。
中取出資料然後丟到後面的業務執行緒池中做具體的業務處理。
threadpoolexecutor
executor
=new
threadpoolexecutor
(coresize
,maxsize
,
0l,
timeunit
.milliseconds
,
newlinkedblockingqueue
<
runnable
>());;
put
(poolname
,executor
);
並沒有指定大小(這也是個坑),於是這個佇列的預設大小為integer
.max_value。
分析了記憶體,的到了如下報告。
,還有乙個則是hashset
。
一會兒再看。
,看這個堆疊是在查詢key
是否存在。通過檢視 312 行的業務**確實也是如此。
了上面的證據。
的時候執行了 6 7 個小時都沒有返回。.7
,所以我初步認為應該是在查詢 key 的時候進入了hashmap
的環形鍊錶導致cpu
高負載同時也進入了死迴圈。
//執行緒池
private
executorservice
executor
;
private
set<
string
>
set
=new
hashset
();
private
void
execute
()
}
public
class
worker
extends
thread
@override
private
void
run()
}
//達到某種條件時清空 set
if(
flag
)
}
}
其實本質上就是hashmap
,所以它肯定是執行緒不安全的,所以會出現兩個問題:
()),觀察上文的堆疊情況:
的 465 行,來看看 1.7 中那裡具體在做什麼:
.next
永遠不為空,所以這個迴圈也不會退出了。
那台伺服器的io
壓力也比較大。
的死迴圈問題在網上層出不窮,沒想到還真被我遇到了。現在要滿足這個條件還是挺少見的,比如 1.8 以下的jdk
這一條可能大多數人就碰不到,正好又證實了一次墨菲定律。
鍵詞↓得隨機解決方案↓
記一次加班所引起的深思
昨天公司進行上線前整合im聊天工具,我負責這塊的除錯,忙了一下午加上一晚上。實際上沒有難度的,但給我帶來了很多麻煩。讓我一一道來吧。除錯工作主要是在js端進行的,im又只能用ie來除錯,ie的debug工具我又不會用,我就是用了最原始的alert 場景是這樣的,當使用者已經登入 平台的時候,如果發起...
一次老闆發話引起的思考
1.員工被重視的感覺是怎樣形成的?一般老闆都希望員工有被重視的感覺,而員工有了這種感覺,也確實可以大大地加強員工的效率和工作的積極性。關鍵是,這種感覺是怎樣形成的呢?其實所謂的被重視的感覺,說白了就是認同感。被肯定,就是被領導贊同 被公認,就是周圍的同事或者team member能相互賞識和尊重,被...
Tomcat響應https請求引起的一次Bug
問題描述 接到乙個需求,也是很簡單。如果是https請求重定向到乙個位址,是http請求重定向到另乙個位址。很快寫完了,開始測試。為了除錯,把請求路徑的日誌列印出來 string url request.getrequesturl tostring logger.info url url https...