浅浅的谈一下ThreadLocalInsecureRandom

Posted 步尔斯特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅浅的谈一下ThreadLocalInsecureRandom相关的知识,希望对你有一定的参考价值。

今天看了一眼随机数相关,无意间发现了这个类。


这看起来真不错啊,有继承了SecurityRandom,又带有ThreadLocal字样,难道拥有了二者的特性,成为了结合体?

我们来一探究竟。

先来看看它是如何生成随机数的

    @Override
    public int nextInt() 
        return random().nextInt();
    

跟踪,看来这个random方法是它核心了。

    private static Random random() 
        return PlatformDependent.threadLocalRandom();
    

PlatformDependent是netty下的,我们日后再说它。

跟踪

    public static Random threadLocalRandom() 
        return RANDOM_PROVIDER.current();
    

跟踪

private interface ThreadLocalRandomProvider 
    Random current();

跟踪,哦~

原来在这,原来底层用的还是ThreadLocalRandom啊,不过时jdk7及以上,用jdk的方式实现了。


    static 
        if (javaVersion() >= 7) 
            RANDOM_PROVIDER = new ThreadLocalRandomProvider() 
                @Override
                @SuppressJava6Requirement(reason = "Usage guarded by java version check")
                public Random current() 
                    return java.util.concurrent.ThreadLocalRandom.current();
                
            ;
         else 
            RANDOM_PROVIDER = new ThreadLocalRandomProvider() 
                @Override
                public Random current() 
                    return ThreadLocalRandom.current();
                
            ;
        

看了一眼netty和jdk下的ThreadLocalRandom实现方式,还是有很大的不同,感兴趣自己去看看吧。

回头看了一眼ThreadLocalInsecureRandom还不是public修饰的,啥也不是,下课。

以上是关于浅浅的谈一下ThreadLocalInsecureRandom的主要内容,如果未能解决你的问题,请参考以下文章

很浅很浅的谈一下class类

浅浅谈一下自己用csdn写博客的初衷

浅浅地聊一下矩阵与线性映射及矩阵的特征值与特征向量

springboot拓展接口ApplicationContextAware的应用场景

宽字节注入浅浅谈!

浅显易懂的谈一谈python中的装饰器!!