ITPub博客

首页 > IT职业 > IT图书 > java中CMS收集器的用法

java中CMS收集器的用法

IT图书 作者:helei1000 时间:2021-09-11 10:02:22 0 删除 编辑

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.概念

CMS是一个老年代收集器,全称 Concurrent Low Pause Collector,是JDK1.4后期开始引用的新GC收集器,在JDK1.5、1.6中得到了进一步的改进。它是对于响应时间的重要性需求大于吞吐量要求的收集器。对于要求服务器响应速度高的情况下,使用CMS非常合适。

2.执行步骤

(1)初始标记:标记GC Roots能直接关联到的对象。

(2)并发标记:用户线程和上一步找到的对象的标记过程并发执行。

(3)重新标记:修改在上一步用户线程运行过程中导致的引用链变化。

(4)并发清除:用户线程和清理线程并发执行。

3.测试实例

<span style="font-family:SimHei;font-size:10px;">package com.tools138.com;
/**
 *
 * @author alaric
 *
 */
public class Test2 {
 
 private static int n = 20;
 /**
  * @param args
  * @throws InterruptedException
  */
 public static void main(String[] args) throws InterruptedException {
  // TODO Auto-generated method stub
 
         byte[] b1 = getM(50);  
         byte[] b2 = getM(50);  
         byte[] b3 = getM(50);  
         byte[] b4 = getM(50);  
         byte[] b5 = getM(50);  
         byte[] b6 = getM(50);  
         byte[] b7 = getM(5);  
         byte[] b8 = getM(5);  
         byte[] b9 = getM(5);
         byte[] b10 = getM(5);
         byte[] b11 = getM(5);
         byte[] b12 = getM(5);
         byte[] b13 = getM(5);
         byte[] b14 = getM(5);
         byte[] b15 = getM(5);
         byte[] b16 = getM(5);
         byte[] b17 = getM(5);
         byte[] b18 = getM(5);
         byte[] b19 = getM(5);
         byte[] b20 = getM(100);
         byte[] b21 = getM(100);
         byte[] b22 = getM(100);
         byte[] b23 = getM(100);
         
   // Thread.sleep(2000);
 
     }  
   
     public static byte[] getM(int m) {  
         return new byte[1024 * 1024 * m];  
     }  
 
}</span>

以上就是java中CMS收集器的用法,相信大家对于这种不容易出去卡顿,同时响应速度块的收集器已经跃跃欲试了。在学会了基本的CMS基础内容后,可以就代码部分进行试验。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2613/viewspace-2831174/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    94
  • 访问量
    678