已知:锁会存在被锁资源的对象头中,不同级别的锁会存储不同的内容,通过这些数据来判断该资源是否有线程抢到了锁。
那当Synchronized锁的是class时,这些数据该存在哪里呢?每个对象都存一份同一的数据?还是在方法区的Class中?亦或者堆中的一块独特区域?
百度了一下没找到这方面的答案,求大神解答!
已知:锁会存在被锁资源的对象头中,不同级别的锁会存储不同的内容,通过这些数据来判断该资源是否有线程抢到了锁。
那当Synchronized锁的是class时,这些数据该存在哪里呢?每个对象都存一份同一的数据?还是在方法区的Class中?亦或者堆中的一块独特区域?
百度了一下没找到这方面的答案,求大神解答!
4 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答741 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
方法区;确切的说 JDK8 以后在元空间。