所谓的Stop the World机制,简称STW,即在执行垃圾收集算法时,Java应用程序的其他所有除了垃圾收集收集器线程之外的线程都被挂起。
此时,系统只能允许GC线程进行运行,其他线程则会全部暂停,等待GC线程执行完毕后才能再次运行。
这些工作都是由虚拟机在后台自动发起和自动完成的,是在用户不可见的情况下把用户正常工作的线程全部停下来,这对于很多的应用程序,尤其是那些对于实时性要求很高的程序来说是难以接受的。
除了垃圾回收外,还有一些其他的操作会触发STW。
并发(CMS)收集器:(-XX:+UseConcMarkSweepGC):用于对年老代进行回收。
串行收集和并行收集在进行垃圾回收工作时,需要暂停整个运行环境,因此,系统在垃圾回收时会有明显的暂停,并且暂停时间会因为堆越大而越长。
并发收集器可以保证大部分工作都并发执行,应用不暂停,这个垃圾收集器适用于尽可能减少应用的停顿时间,减少full gc发生的几率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代,适用于响应时间优先的系统(比较常用,适用于较大型的系统)。
CMS并非没有暂停,而是用两次短暂停来替代串行标记整理算法的长暂停。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。