我的读书笔记——parNew收集器

我的读书笔记

ParNew收集器

​ ParNew 收集器其实就是多线程版本的Serial 收集器,除了使用多条线程进行垃圾收集之外,其行为包括收集算法、Stop the World、Serial 收集器可以使用的控制参数 (-XX: SurvivorRatio、-XX: PretenureSizeThreshold、-XX:HandlePromotionFailure等)都和Serial 收集器一致。在实际上,两个收集器直接公用了很多代码。
​ ParNew收集器是运行在Server模式下的虚拟机的首选新生代收集器,其中一个重要的原因是除了Servial收集器之外,只有他能和CMS收集器配合工作。
​ ParNew收集器在单CPU环境中绝对不会比Serial收集有更好的效果,甚至在两个CPU都不能百分之百的超过Serval收集器,考虑到线程交互的额外开销。当然随着CPU的数量增加,它对于GC时系统资源的有效利用还是很有好处的。它默认开启的收集线程数和CPU数量一致。在CPU非常多的环境下,可以使用-XX:ParallelGCThreads参数来控制垃圾收集的线程数。


有关于“并发”和“并行”的区别?
并发(paralled):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。
并行(concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续执行,而垃圾收集程序运行于另一个CPU上。

你可能感兴趣的:(java虚拟机)