Concurrent Mark&Sweep中的"由于时间而中止了预防"

rip*_*234 12 java garbage-collection mark-and-sweep

在Java 6中运行Concurrent Mark&Sweep时,我得到"因时间而中止预防".这是什么意思?在做任何实际工作之前,GC是否真的停在中间?

rec*_*les 12

查看Masamitsu博客中的 MaxAbortablePrecleanTime部分 .这将使您更好地了解预清洁阶段的作用.比我愿意打字更好;)

  • 这不是一个真正的问题,中止发生在第二个预清洁阶段,实际上是设计为中止,如果它需要太长时间.根据我的理解,这是因为它不像下一阶段那样平行,所以如果有很多工作要做,那么就没有必要留在那个阶段(虽然我在这里可能是错的,但是文档在这方面有点薄). (2认同)