Is SecureRandom
线程安全?也就是说,初始化之后,访问下一个随机数是否可以保证线程安全?检查源代码似乎表明确实如此,并且这个错误报告 https://bugs.java.com/bugdatabase/view_bug?bug_id=6498354似乎表明它缺乏线程安全的文档是一个 javadoc 问题。有人确认它实际上是线程安全的吗?
是的。它延伸Random
,它总是有一个事实上的线程安全实现,并且,来自Java 7,明确保证线程安全。 http://download.oracle.com/javase/7/docs/api/java/util/Random.html
如果许多线程都使用一个SecureRandom
,可能存在会损害性能的争用。另一方面,初始化一个SecureRandom
实例可能相对较慢。最好是共享一个全局 RNG,还是为每个线程创建一个新的 RNG,这取决于您的应用程序。这ThreadLocalRandom http://download.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadLocalRandom.html类可以用作一种模式来提供支持的解决方案SecureRandom
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)