《深入理解java虚拟机》中说java虚拟机在让java所有线程都“跑到”safepoint,从而安全地进行垃圾回收时,有两种方式:1,抢占式中断,2,主动式中断;前者说jvm先中断所有线程,然后判断所有线程是不是都在safepoint,如果不是就恢复线程直到其运行到safepoint,后者说等到jvm想要进行垃圾回收时只会设置一个标志位,让每个线程自己去判断,如果满足则中断,而每个线程要足总的就是不断的去轮训这个标志位。我想问的是,这个jvm垃圾回收操作是必须等到所有线程都到safepoint了在一起做还是针对每个线程单独做?(有方法区回收,还有Java堆回收)
哪位大侠可以给我指点迷津,最好也不要仅仅限于这一点,可以为了给我讲清楚扩展一点
