ParNew 的垃圾回收器的工作原理,之前基本上就演示过了;

这里主要说明一下它的多线程原理和相关的参数;

1. 启动系统时,如何指定使用 ParNew 垃圾回收器?

  • 使用 -XX:+UseParNewGC,只要加入这个参数,JVM 启动后对新生代的垃圾回收,就是 ParNew 垃圾回收器了。

2. ParNew 如何工作的?

  • 新生代垃圾回收器 ParNew,最大的优势就是多线程垃圾回收机制,理论上4核 CPU 就可以支持4个垃圾回收线程并发执行,可以提升4倍的性能;
  • 回收算法是复制回收算法,与 Serial 垃圾回收器一样;
  • ParNew 垃圾回收器如果一旦在合适的时机执行 Minor GC 的时候,就会把系统程序的工作线程全部停掉,禁止程序继续运行创建新的对象,然后自己就用多个垃圾回收线程去进行垃圾回收,回收的机制和算法就跟之前说的是一样的。

image.png

3. ParNew 垃圾回收器默认情况下的线程数量

  • 使用 ParNew 垃圾回收器之后,他默认给自己设置的垃圾回收线程的数量就是跟 CPU 的核数是一样的;
  • 一般不建议修改这个线程数,但是使用 -XX:ParallelGCThreads 可以设置线程的数量;