Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
444 views
in Technique[技术] by (71.8m points)

Java 中 ThreadLocalRandom.getProbe() 可以获得一个随机数,请问这个过程是怎样的呢?

想知道这个问题的答案的引子是 ConcurrentHashMap 的 addCount 方法里使用了它,网上搜索的话只有一个笼统的获取随机数。

但我追查到 ThreadLocalRandom 的源码中,发现它是获取当前线程对应的 Thread 类实例中的 threadLocalRandomProbe 成员变量。然后我使用 IDE 想调出 Thread 类中任何给这个成员变量赋值的语句,IDE 却告诉我这个成员变量没有被使用过。。

而 getProbe 本身是一个静态方法,其所属的 ThreadLOcalRandom 唯一的静态块我看过了,也没有给 threadLocalRandomProbe 赋值的语句。那么得到这个成员变量的值,有什么意义?它为什么是随机的?

谢谢


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...