【发布时间】:2013-10-21 17:56:39
【问题描述】:
正在浏览 Java 7 的新特性,发现添加了这个新类:
对于并发访问,使用 ThreadLocalRandom 代替 Math.random() 导致更少的争用,最终更好 性能。
正在研究如何实现,从而减少争用并提高性能。
【问题讨论】:
-
Math.random()是synchronized。源代码在您的 JDK 安装中可用。 -
完全是猜测,但我敢打赌
Math.random()必须同步以确保两个线程不会获得相同的随机数。ThreadLocalRandom,顾名思义,不必同步。 -
@SotiriosDelimanolis -
Math.random()不是synchronized而是randomNumberGenerator初始化方法initRNG是synchronized
标签: java