垃圾收集器 - Stop the world

在垃圾回收過程當中須要將應用程序的線程暫停稱之爲Stop-The-World Event(STW)java

所謂的Stop the World機制,簡稱STW,即在執行垃圾收集算法時,Java應用程序中除垃圾收集器線程以外的線程都被掛起。
此時,系統只能容許GC線程進行運行,其餘線程則會所有暫停,等待GC線程執行完畢後才能再次運行。
這些工做都是由虛擬機在後臺自動發起和自動完成的,是在用戶不可見的狀況下把用戶正常工做的線程所有停下來,這對於不少的應用程序,尤爲是那些對於實時性要求很高的程序來講是難以接受的。
可是有些時候對於虛擬機來講採用Stop the world機制是沒法避免的,例如採用複製算法時,爲了保證在複製存活的對象的時候,對象的一致性,必然要使應用程序被掛起。
可是隨着java虛擬機的發展,HotSpot虛擬機團隊爲達到更好用戶體驗而一直進行着努力,不斷的對垃圾收集器進行着改進,
隨着JDK的版本的不斷更新,更好的垃圾收集器的出現,用戶線程的停頓時間也在不斷縮短,雖然這一時間現階段仍然不能消除,但相信不久的將來必定會有更好的垃圾收集器被發現,從而徹底達到用戶對於虛擬機垃圾回收的性能要求。算法

參考:
http://colobu.com/2015/04/14/Java-GC-memo/#Stop-The-World_Event
https://blog.csdn.net/sinat_25306771/article/details/52374498性能

相關文章
相關標籤/搜索