JVM

JVM- safePoint,OopMap,remeberSet

2019-04-24  本文已影响0人  简书徐小耳

什么是JVM

什么是安全点 参考文章:https://www.jianshu.com/p/c79c5e02ebe6

什么地方可以放safepoint

线程如何被挂起

1、执行Java code

2、执行native code

后面说了一大堆关于如何让读写safepoint state和thread state按照严格顺序执行(serialized),主要用两种做法,一种是加内存屏障(Memeory barrier),一种是调用mprotected系统调用去强制Java的写操作按顺序执行(The VM thread performs a sequence of mprotect OS calls which forces all previous writes from all Java threads to be serialized. This is done in the os::serialize_thread_states() call)

3、执行complied code

4、线程处于Block状态

5、线程正在转换状态

最终实现

线程如何恢复

进入safePoint 慢的影响

safepoint的总结

之所以只在选定的位置放置safepoint是因为:

safeRegion

什么是OopMap

RememberedSet

上一篇 下一篇

猜你喜欢

热点阅读