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

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

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

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

谢谢

阅读 7.9k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题