我想創建一個對象的很多實例,它使用一個隨機數作爲其初始化的一部分,但是如果我在一個循環中創建大量的這些對象,他們中的大多數將會是相同的(我認爲)。有人可以澄清嗎?如果我的假設是正確的,是否有辦法讓他們共享一個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