JVM 堆內存溢出後,其他線程是否可繼續工作

首先,我們要明白ava中OOM分很多類型,比如:
堆溢出(“java.lang.OutOfMemoryError: Java heap space”)
永久帶溢出(“java.lang.OutOfMemoryError:Permgen space”)
不能創建線程(“java.lang.OutOfMemoryError:Unable to create new native thread”)等很多種情況

其次,一個線程溢出後,進程裏的其他線程還能照常運行(自己寫個demo通過控制檯拋出異常和打印結果看出)

結論:如果發生OOM,該線程會死掉同時釋放所佔用的內存。如果是棧溢出,結論也是一樣的。

每次GC,所有線程都要停下來,以避免後續對像引用。所以,頻繁gc會對其他線程產生較大的影響

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章