Java Fork/Join中的ThreadLocalRandom一致性
我的要求是使用Fork/Join框架用唯一的随机整数初始化一个非常大的整数数组。看起来我可以使用ThreadLocalRandom,因为Javadoc说它非常适合在Fork/Join情况下使用。我的问题是:由于池中的每个线程都有自己的ThreadLocalRandom实例,而该实例不是共享的,那么两个线程是否有可能生成相同的随机int 是-概率可能与对所有线程只使用一个随机数大致相同 ThreadLocalRandom旨在减少多个线程使用同一实例时可能发生的争用和开销,但不能保证随机数序列由唯一的数字组成Java Fork/Join中的ThreadLocalRandom一致性,java,multithreading,Java,Multithreading,我的要求是使用Fork/Join框架用唯一的随机整数初始化一个非常大的整数数组。看起来我可以使用ThreadLocalRandom,因为Javadoc说它非常适合在Fork/Join情况下使用。我的问题是:由于池中的每个线程都有自己的ThreadLocalRandom实例,而该实例不是共享的,那么两个线程是否有可能生成相同的随机int 是-概率可能与对所有线程只使用一个随机数大致相同 ThreadLocalRandom旨在减少多个线程使用同一实例时可能发生的争用和开销,但不能保证随机数序列由唯一
如果需要unicity,您必须手动检查生成的值与之前生成的值。如果它们不会生成相同的数字,它们是否会是随机生成器?您真正需要的是Java8中的java.util.SplittableRandom。