我想创建一个对象的很多实例,它使用一个随机数作为其初始化的一部分,但是如果我在一个循环中创建大量的这些对象,他们中的大多数将会是相同的(我认为)。有人可以澄清吗?如果我的假设是正确的,是否有办法让他们共享一个Random对象?对象实例之间共享的随机数?
1
A
回答
2
您的对象可以共享一个java.util.Random
实例。实际上,这将为您提供最佳性能,而不是每次创建Random
的新实例。
如果您正在处理多个线程,即使java.util.Random
是线程安全的,您应该考虑使用在JDK 1.7中引入的ThreadLocalRandom
,因为它将显着减少线程争用。
例如:
public class ExampleClass {
private static final Random random = new Random();
public ExampleClass() {
System.out.println("Constructor using random: " + random.nextInt(100));
}
public void methodThatUsesRandom() {
System.out.println("Method using random: " + random.nextInt(100));
}
}
相关问题
- 1. 一个JVM中两个JRuby实例之间的共享对象
- 2. 服务之间共享随机密码?
- 3. 在Web服务调用之间共享对象实例
- 4. 在windows之间共享一个对象实例
- 5. CloudService实例之间的共享状态
- 6. 在类对象之间共享数据
- 7. 用于在对象之间共享数据的单例模式
- 8. 在实例之间共享存储
- 9. 在实例之间共享缓存
- 10. 文件之间的共享对象
- 11. 子对象之间的共享方法
- 12. 线程之间的CUDA共享对象
- 13. 如何在Django模型实例之间共享公共数据?
- 14. 对象实例共享子属性?
- 15. 在C#中的多个对象之间共享一个实例化的类
- 16. 在线程之间共享XPObject对象
- 17. 在活动之间共享域对象
- 18. 在QML文件之间共享对象
- 19. 在成员之间共享对象
- 20. 在webservice之间共享业务对象
- 21. 在线程之间共享对象
- 22. JPA实体之间的数据共享
- 23. 在多个进程之间共享共享对象
- 24. 在两个共享对象之间共享变量
- 25. 在不同用户之间共享PHP单例对象
- 26. Python:如何在不同类的实例之间共享数据?
- 27. 共享对话框之间的参数
- 28. 为什么Python似乎将实例变量视为在对象之间共享?
- 29. 在对象实例之间共享常规类全局变量 - help!
- 30. 核心数据的NSPrivateQueueConcurrencyType和线程之间共享对象
共享相同的随机对象不会帮助。即使是从同一个对象获得重复随机数的概率也是如此。 – Priyamal
取决于随机数的范围和随机数发生器的质量(周期长度)。 –
这个问题有点模糊,但是:一般来说,代码应该使用* same * Random实例。该实例可以与共享任何对象的方式共享。 – user2864740