JVM笔记(4)--垃圾收集器

第三章 垃圾收集器

   对于现在垃圾收集器要介绍的有7种分别是 Serial,PerNew,Parallel Scavenge,Serial Old,Parallel Old,CMS,Garbage First。

             

 

 

     对于上图垃圾回收器俩俩连线的收集器就可以相互组合使用,但是对于以上的关系并不是一层不变的,

     在JDK8中serial+ CMS,ParNew+Serial Old就废弃不在使用,在JDK9就取消对于他们的支持。

                1.在Java堆的内存中老年代和新生代不同使用的收集器

      新生代(绿色):Serial,ParNew,Parallel Scavenge

      老年代(黄色):CMS,Serial Old,ParAllel Old

     注:对于G1这个垃圾收集器它既可以回收新生代又可以回收老年代,这得益于在设计它的时候基于Region的内存布局形式。

              

                2.Serial收集器:它是一个单线程的收集器,在用户线程执行中到了执行垃圾收集器的时候,所以的用户线程必须全部停下来,等待垃圾收集器去工作,

     只有垃圾收集器不在工作的时候,用户线程才会继续工作。这好比你在房间造了许多垃圾,这个时候你妈来帮你打扫垃圾,

     你是不是得停下来(如果不停下来,我相信你一定会被胖揍的),等待打扫完毕,她走了,你在继续造垃圾(以上是举例子,千万不要实践哟)。

      实现算法 :在新生代是采用标记-复制算法,老年代采用标记-整理算法

      优点:简单高效。

                 

    3.ParNew收集器:是一个多线程并行Serial收集器。

      实现算法:在新生代是采用标记-复制算法,老年代采用标记-整理算法     

      优点:对于Serail收集器单核效果更好,但是当处理器核数增加时,ParNew就体现出它的优势。

      4并行和并发区别

      1)并行:同一时间多条线程协同工作,就相当于下图的俩个热水器可以同时排队让大家接水

      

 

 

       2)并发:

                     

给大家推荐一个博客我没有三颗心脏:我自己觉得这位大佬总结非常好,有兴趣可以看一看

未完待续!!!

posted @ 2020-10-31 15:53  林鱼  阅读(59)  评论(0编辑  收藏  举报