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虚拟机6:垃圾收集(GC)-1(内存溢出和内存泄漏的区别)