垃圾收集器 - Stop the world

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在垃圾回收过程中需要将应用程序的线程暂停称之为Stop-The-World Event(STW)

所谓的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

转载于:https://my.oschina.net/mengzhang6/blog/1786600

你可能感兴趣的:(移动开发)