垃圾回收的并发与并行
1、并行
多条垃圾收集线程并行工作,但此时用户线程处于等待状态,比如ParNew、Parallel、Scavenge、Parallel Old
在单核cpu,并行垃圾回收效率可能较低。
2、串行
单线程运行,如果内存不够,则程序暂停,启动垃圾回收器回收,回收完,再启动程序线程继续运行。
3、并发
用户线程和垃圾回收线程同时执行,用户线程运行在cpu core1上,垃圾回收线程运行在cpu core2上。比如cms,g1
多条垃圾收集线程并行工作,但此时用户线程处于等待状态,比如ParNew、Parallel、Scavenge、Parallel Old
在单核cpu,并行垃圾回收效率可能较低。
单线程运行,如果内存不够,则程序暂停,启动垃圾回收器回收,回收完,再启动程序线程继续运行。
用户线程和垃圾回收线程同时执行,用户线程运行在cpu core1上,垃圾回收线程运行在cpu core2上。比如cms,g1