刚刚看了JAVA并发编程的艺术,看到轻量级锁的加锁解锁过程有一些问题求大佬解答
线程A获取到轻量级锁,此时锁对象的markword中的对象是线程A的栈空间,如果这时候线程B来竞争此锁,就先把锁对象的markword拷贝到已经的栈空间。但是现在锁对象的markword还是线程A栈空间地址啊,如果B获取到锁然后就把自己的地址复制给锁对象markword了。那这时候锁对象的markword不是丢了么
刚刚看了JAVA并发编程的艺术,看到轻量级锁的加锁解锁过程有一些问题求大佬解答
线程A获取到轻量级锁,此时锁对象的markword中的对象是线程A的栈空间,如果这时候线程B来竞争此锁,就先把锁对象的markword拷贝到已经的栈空间。但是现在锁对象的markword还是线程A栈空间地址啊,如果B获取到锁然后就把自己的地址复制给锁对象markword了。那这时候锁对象的markword不是丢了么