JVM垃圾回收机制(三)

知识点补充

G1垃圾回收器:garbage first,G1垃圾回收器是吧内存分成很多块,每次GC的时候回收内存最大的哪一块,G1每块大小为1-32M,最多有2000块
在这里插入图片描述

2.由于GC线程与用户线程是共享堆内存的,那么就存在GC线程与用户线程之间的协调问题。

(1)协调方式有两种:
抢占式的:就是GC线程主动的去发现安全点,当用户线程运行到安全点时,且有需要进行swt时,GC线程进行垃圾回收
主动式的:GC线程在用户线程在安全点的地方设置FLAG,等用户线程运行到安全点,且需要进行swt的时候就进行一次GC
(2)什么样的地方可以作为安全点:
方法,循环体,异常
(3)安全域:
思考:为什么有安全点了我们还是需要安全域?
因为有时候SWT是不会马上执行的,且当一个线程不在运行状态的时候,安全点没有办法进行,所以需要安全域
安全域有什么的用处:
当线程进入到安全域的时候,GC线程就不需要去理会用户线程了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_30594513/article/details/88626955