作者回复: 检查点是对的。这种检查点的机制和信号有点像,都是业务线程要主动去处理。
作者回复: 线程确实是休眠,但我这里问的问题是线程什么时候休眠,怎么样可以使得所有业务线程停下来呢?
作者回复: 是的。但你知道safepoint是怎么发生作用的吗?
作者回复: 1. this是Java层面的概念。其实我们不应该去管它的地址是什么。但如果你非要使用Unsafe对它进行访问,那么,是的,它指向的是对象头部的地址。 2. 栈上的指针也是在对象拷贝阶段更新的呀。这和普通对象有什么不同呢?都是一个二维指针罢了。并不复杂,它没有什么特别之处。非要说有的话,那就是编译器要操心栈上哪些地方是引用,哪些地方是引用。这就是栈的OopMap,这个由编译器操心。内存管理器是不必操心的。