sun.misc.Unsafe

sun.misc.Unsafe是jdk并发类库java.util.concurrent包中使用的底层类,该类中的方法都是通过native方法调用操作系统命令。Unsafe类中直接提供操作系统调度命令park、unpark,减少信号量的开销,提高新能。

Unsafe unsafe = Unsafe.getUnsafe(); 通过这样的方式获得Unsafe的实力会抛出异常信息,因为在unsafe的源码中会有对安全性的检查。

通过反射的方式获取Unsafe对象,因为在开源版本的Unsafe.java中声明了一个实例域,所以我们可以通过反射的方式来获得这个域。

    private static Unsafe getUnsafeInstance() throws SecurityException,
            NoSuchFieldException, IllegalArgumentException,
            IllegalAccessException {

        Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe");
        theUnsafe.setAccessible(true);
        return (Unsafe) theUnsafe.get(Unsafe.class); //theUnsafe.get(null);

    }


你可能感兴趣的:(sun.misc.Unsafe)