开发者社区> 问答> 正文

Safepoint内部如何实现的?

Safepoint内部如何实现的?

展开
收起
1358896759097293 2021-05-04 15:23:15 829 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    safepoint采用的是一种协作式的方式,就是当它发起了safepoint的请求后,那些Java线程来检测这个请求,然后再把自己给暂停,而不是通过强迫式,例如VMthread调用某一个API强行把一个thread给占进,强行暂停也许可以很快的把种线程给暂停住,但是这里会有很多不确定的状态在里面,安全性就很容易形成问题。 Hotspot是所以就采用了这种协作式的方式,每个Java线程它能够及时的判断出来 safepoint的请求,能够到一个他自认为可以安全的一个点上把自己给停下来。 与此同时,既然是协作式,就是说这些Java线程怎样能够确保它能够及时的响应,因为有可能在做自己很复杂的业务逻辑,什么时候去检查 safepoint,做这么多的检查,会不会影响到 Java本身的性能,这些都是需要综合考虑的一件事。

    2021-05-05 22:51:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
fibjs 模块重构从回调到协程--陈垒 立即下载
fibjs 模块重构从回调到协程 立即下载
对象的生命期管理 立即下载

相关实验场景

更多