synchronized中轻量级锁竞争对象头数据扭转

刚刚看了JAVA并发编程的艺术,看到轻量级锁的加锁解锁过程有一些问题求大佬解答

线程A获取到轻量级锁,此时锁对象的markword中的对象是线程A的栈空间,如果这时候线程B来竞争此锁,就先把锁对象的markword拷贝到已经的栈空间。但是现在锁对象的markword还是线程A栈空间地址啊,如果B获取到锁然后就把自己的地址复制给锁对象markword了。那这时候锁对象的markword不是丢了么

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^