随机类线程安全吗?

2022-08-31 08:42:17

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


答案 1

它是线程安全的,因为当多个线程使用时,它仍然会生成随机数。

Sun/Oracle JVM 实现使用 synced 和 AtomicLong 作为种子来提高线程之间的一致性。但它似乎并不能保证文档中的所有平台。

我不会编写您的程序来要求这样的保证,特别是因为您无法确定调用的顺序。nextInt()


答案 2

它是线程安全的,尽管并不总是这样。

有关更多详细信息,请参阅 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6362070


推荐