Java虚拟机6:垃圾收集(GC)-2(并行和并发的区别)

Posted 申公的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java虚拟机6:垃圾收集(GC)-2(并行和并发的区别)相关的知识,希望对你有一定的参考价值。

1.并发编程下

这两个名词都是并发编程中的概念,在并发编程的模型下的定义:

  • 并发:是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序。
  • 并行:是多个或同时一个cpu上,每个cpu运行一个程序。

打个比方,并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。
并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。

并行和并发并不是两个互斥的概念。

2.垃圾收集器下

在谈论垃圾收集器的上下文语境中,可以这么理解这两个名词:

1、并行Parallel

多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态

2、并发Concurrent

指用户线程与垃圾收集线程同时执行(但并不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上

 

转载地址:http://www.cnblogs.com/xrq730/p/4839245.html

以上是关于Java虚拟机6:垃圾收集(GC)-2(并行和并发的区别)的主要内容,如果未能解决你的问题,请参考以下文章

深入理解java虚拟机GC垃圾回收-低延迟垃圾收集器(ShenandoahZGC)

java虚拟机-GC-调优

Java虚拟机6:垃圾收集(GC)-1(内存溢出和内存泄漏的区别)

JVMJVM内存结构之——垃圾收集器(并发与并行/ GC性能指标/ 垃圾收集器组合关系/ CMS收集器/ G1收集器)

Java虚拟机笔记:GC垃圾回收

JVM虚拟机---垃圾回收器