随机类线程安全吗?


问题内容

Random在多个线程之间共享该类的一个实例是否有效?并nextInt(int)特别从多个线程调用?


问题答案:

从某种意义上讲,它是线程安全的,当被多个线程使用时仍会生成随机数。

Sun / Oracle JVM实现使用同步和AtomicLong作为种子来提高线程之间的一致性。但是,文档中似乎并没有在所有平台上对此进行担保。

我不会编写要求这种保证的程序,尤其是当您无法确定nextInt()调用顺序时。