java高并发情况下高效的随机数生成器

qqstrategy55120 22 0 pdf 2021-06-09 03:06:50

在Thread中的变量为了应对线程竞争,Java中有一个ThreadLocal类,为每一个线程分配了一个独立的,互不相干的存储空间。在Thread对象中,成员变量threadLocalRandomSeed,threadLocalRandomProbe,threadLocalRandomSecondarySeed被标记为同一个组tlr,使得这3个变量放置于一个单独的缓存行,而不与其它变量发生冲突,从而提高在并发环境中的访问速度。反射的高效替代方案随机数的产生需要访问Thread的threadLocalRandomSeed等成员,但是考虑到类的封装性,这些成员却是包内可见的。很不幸,ThreadLocalRandom位于java.util.concurrent包,而Thread则位于java.lang包,因此,ThreadLocalRandom并没有办法访问Thread的threadLocalRandomSeed等变量。其中threadLocalRandomSeed是long型的,threadLocalRandomSecondarySeed是int。而threadLocalRandomSecondarySeed只是某些特定的JDK内部实现中有使用,使用并不广泛。

java高并发情况下高效的随机数生成器

java高并发情况下高效的随机数生成器

java高并发情况下高效的随机数生成器

java高并发情况下高效的随机数生成器

java高并发情况下高效的随机数生成器

java高并发情况下高效的随机数生成器

java高并发情况下高效的随机数生成器

用户评论
请输入评论内容
评分:
暂无评论