首先,我們要明白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會對其他線程產生較大的影響