浅浅的谈一下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的主要内容,如果未能解决你的问题,请参考以下文章