长沙java培训
达内长沙芙蓉路中心

18487146383

热门课程

GC的一些通用概念详解

  • 时间:2016-07-30
  • 发布:长沙Java培训
  • 来源:zqhxuyuan

学习Java的人都知道,GC是比较重要的一个部分。其中关于GC的一些通用概念你是否了解呢?现在就让达内Java培训的小编给大家详解一下这些通用概念吧。

垃圾:Garbage(名词),在系统运行过程当中所产生的一些无用的对象,这些对象占据着一定的内存空间,如果长期不被释放,可能导致OOM。

垃圾收集器:Garbage Collector(名词),负责回收垃圾对象的垃圾收集器

垃圾回收:Garbage Collect(动词),垃圾收集器工作时,对垃圾进行回收

垃圾回收算法/GC算法:不同的GC算法,它们的垃圾回收工作模式不同(比如串行、并行等)

GC通用概念

这几种算法中存活对象没有移动的算法只有:标记-清除算法。复制算法会将存活对象移动到另一块内存区,标记整理算法会将存活对象移动到边界位置。

在GC过程中,如果GC线程必须暂停应用程序线程(用户线程),则发生Stop the World。当然也可以允许GC线程和应用程序线程一起运行,即GC并不会暂停应用程序的线程。

串行、并行、并发:串行和并行指的是垃圾收集器工作时暂停应用程序(发生Stop the World),使用单核CPU(串行)还是多核CPU(并行)。

串行(Serial):使用单核CPU串行地进行垃圾收集;

并行(Parallel):使用多CPU并行地进行垃圾收集,并行是GC线程有多个,但在运行GC线程时,用户线程是阻塞的;

并发(Concurrent):垃圾收集时不会暂停应用程序线程,大部分阶段用户线程和GC线程都在运行,我们称垃圾收集器和应用程序是并发运行的。

在Java中有并发编程的概念,并发编程中有多线程的概念。通常并发指的是不同类型的线程可以同时运行(比如GC线程和用户线程并发地运行),而并行指的是相同类型的线程采用多线程模式运行(比如GC线程使用多个CPU并行地运行)。

GC暂停/Stop The World/STW:不管选择哪种GC算法,Stop-the-world都是不可避免的。Stop-the-world意味着从应用中停下来并进入到GC执行过程中去。一旦Stop-the-world发生,除了GC所需的线程外,其他线程都将停止工作,中断了的线程直到GC任务结束才继续它们的任务。GC调优通常就是为了改善stop-the-world的时间(尽量减少STW对应用程序造成的暂停时间)。

这些GC的通用概念你现在都明白了吗?如果你对于Java的学习还有不懂的地方,可以和我们达内Java培训的老师进行交流。或者你也可以参加我们的免费试听课程,更多详情欢迎联系我们达内Java培训的咨询老师。

上一篇:从Win 10免费升级来看微软的现状
下一篇:CSS居中的一个方法

长沙达内java培训小编带你从事IT行业拿高薪

长沙达内Java培训 优秀程序员都有的强迫症,你中了哪几条?

长沙达内java培训 软件测试工程师到底是做什么的?

长沙达内java培训 你能听得懂几个程序员潜台词?

选择城市和中心
贵州省

广西省

海南省