查看的源代码
SecureRandom,它使用一种
synchronized方法,因此
synchronized在多线程环境下进行的任何讨论都适用。
鉴于
Random
javadoc中的这一注释(如您所述),我认为您的使用计划
ThreadLocal<SecureRandom>是适当的:
的实例
java.util.Random是线程安全的。但是,java.util.Random跨线程并发使用同一实例可能会遇到争用并因此导致性能下降。考虑改为ThreadLocalRandom在多线程设计中使用。
总结一下,您的实现不会遇到内存泄漏问题。这尤其如此,因为存储在中的对象
ThreadLocal来自系统ClassLoader,而不是来自Webapp的ClassLoader。



