认识java-STW:Stop the World
生活随笔
收集整理的這篇文章主要介紹了
认识java-STW:Stop the World
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.Stop-the-World,簡稱STW,指的是GC事件發生過程中,會產生應用程序的停頓。停頓產生時整個應用程序線程都會被暫停,沒有任何響應。有點像卡死的感覺,這個停頓成為STW。
? ? 可達性分析算法中枚舉根節點(GC?Roots)會導致所有Java執行線程停頓。
?? ?(1)分析工作必須在一個能確保一致性的快照中進行。
? ? (2)一致性指整個分析期間整個執行系統看起來像被凍結在某個時間點上。
? ? (3)如果出現分析過程中對象引用關系還在不斷變化,則分析結果的準確性無法保證。
2.被STW中斷的應用程序線程會在完成GC之后恢復,頻繁中斷會讓用戶感覺像是網速不快造成電影卡帶一樣,所以我們需要減少STW的發生。
3.STW事件和采用哪款GC無關,所有的GC都有這個事件。
4.哪怕是G1也不能完全避免Stop-the-world情況發生,只能說垃圾回收器越來越優秀,回收效率越來越高,盡可能地縮短了暫停時間。
5.STW是JVM在后臺自動發起和自動完成的。在用戶不可見的情況下,把用戶正常的工作線程全部停掉。
6.開發中不要用System.gc();會導致Stop-the-world的發生。
STW驗證
結果:
總結
以上是生活随笔為你收集整理的认识java-STW:Stop the World的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java-内存溢出与内存泄漏
- 下一篇: jvm-垃圾回收随时都可以STW吗?带你