查看对象头,观察对象锁的状态

JaxYoun / 2023-09-05 / 原文

查看对象头,观察对象锁的状态

<dependency>
     <groupId>org.openjdk.jol</groupId>
    <artifactId>jol-core</artifactId>
    <version>0.9</version>
</dependency>
package comg.yang.httpstest.controller;

import org.openjdk.jol.info.ClassLayout;

import java.util.concurrent.TimeUnit;

/**
 * @description:
 * @author: Yang JianXiong
 * @since: 2023/9/5
 */
public class BiasLockTest {

    public static void main(String[] args) throws InterruptedException {
        TimeUnit.SECONDS.sleep(2);
        Object lock = new Object();
        System.err.println(ClassLayout.parseInstance(lock).toPrintable());
        
        extracted(lock);
        
        System.err.println(ClassLayout.parseInstance(lock).toPrintable());
    }

    private static void extracted(Object lock) {
        synchronized (lock) {
            System.out.println(ClassLayout.parseInstance(lock).toPrintable());
        }
    }

}