1. 首页
  2. 编程语言
  3. Java
  4. JVM系列之:再谈java中的safepoint说明

JVM系列之:再谈java中的safepoint说明

上传者: 2022-06-21 02:40:50上传 PDF文件 233.69 KB 热度 12次

java程序里面有很多很多的java线程,每个java线程又有自己的stack,并且共享了heap。GC直接在这种情况下操作stack或者heap,会导致线程的异常。然后JVM执行相应的操作之后,所有的线程再恢复执行。一般来说,如果线程在竞争锁被阻塞,IO被阻塞,或者在等待获得监视器锁状态时,线程就处于safepoint状态。从而通知所有的线程。thread1在收到设置safepoint之前是一直执行的,在收到信号之后还会执行一段时间,然后到达Safepint暂停执行。thread2先执行了一段时间,然后因为CPU被抢夺,空闲了一段时间,在这段时间里面,thread2收到了设置safepoint的信号,然后thread2获得执行权力,接着继续执行,最后到达safepoint。thread3是一个native方法,将会一直执行,知道safepoint结束。

下载地址
用户评论