与多线程同理,并行和并发在垃圾收集器可以做出如下解释:
并行(Parallel)
指多条垃圾收集线程并行工作,多个CPU同时执行垃圾回收,此时用户线程仍处于等待状态,此工作方式的垃圾收集器有:ParNew,Parallel,Scavenge,
Parallel Old
串行(Serial)
单线程执行,同一时间段只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200527160108648.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FscGhy,size_16,color_FFFFFF,t_70)
并发(Concurrent)
指同一时间段内,用户线程与垃圾收集线程同时执行,但是我们说过,程序触发GC时,会同时触发STW,所以还是会出现只有垃圾回收线程单独执行的情况,比如:CMS和G1垃圾收集器
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200527160610121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FscGhy,size_16,color_FFFFFF,t_70)