当前位置:编程学习 > JAVA >>

jvm垃圾回收周期 程序为什么会被挂起

java在gc的时候回stop-the-world,这是因为什么呢?我想到的是为了数据的一致性,还有其他的原因么? java jvm gc --------------------编程问答-------------------- CMS是个并发收集器,允许在回收垃圾的时候同时应用也继续运行,但中间也存在个别阶段需要stop the world --------------------编程问答--------------------
引用 1 楼 ticmy 的回复:
CMS是个并发收集器,允许在回收垃圾的时候同时应用也继续运行,但中间也存在个别阶段需要stop the world

那为什么要stop呢?除了为了保持数据的一致性还有其他的原因么? --------------------编程问答-------------------- jvm垃圾回收是一个守护线程,优先级低,不能和其他非守护线程抢占cpu时间片,所以在非守护线程空闲时jvm才会执行垃圾回收
所以应该不是jvm要执行垃圾回收而去stop the world 。。。。。。。。。 --------------------编程问答--------------------
引用 3 楼 hucp2007 的回复:
jvm垃圾回收是一个守护线程,优先级低,不能和其他非守护线程抢占cpu时间片,所以在非守护线程空闲时jvm才会执行垃圾回收
所以应该不是jvm要执行垃圾回收而去stop the world 。。。。。。。。。

我可以理解为gc的线程优先级低,所以要想gc的话必须要先把线程挂起?
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,