0


浅浅的谈一下ThreadLocalInsecureRandom

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

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

我们来一探究竟。

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

@OverridepublicintnextInt(){returnrandom().nextInt();}

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

privatestaticRandomrandom(){returnPlatformDependent.threadLocalRandom();}

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

跟踪

publicstaticRandomthreadLocalRandom(){return RANDOM_PROVIDER.current();}

跟踪

privateinterfaceThreadLocalRandomProvider{Randomcurrent();}

跟踪,哦~

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

static{if(javaVersion()>=7){
            RANDOM_PROVIDER =newThreadLocalRandomProvider(){@Override@SuppressJava6Requirement(reason ="Usage guarded by java version check")publicRandomcurrent(){returnjava.util.concurrent.ThreadLocalRandom.current();}};}else{
            RANDOM_PROVIDER =newThreadLocalRandomProvider(){@OverridepublicRandomcurrent(){returnThreadLocalRandom.current();}};}

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

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


本文转载自: https://blog.csdn.net/CSDN_SAVIOR/article/details/125624398
版权归原作者 步尔斯特 所有, 如有侵权,请联系我们删除。

“浅浅的谈一下ThreadLocalInsecureRandom”的评论:

还没有评论