场景
Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化:
Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_java热点函数-CSDN博客
参考以上性能测试工具的使用。
Java开发手册中有这样一条:
【推荐】避免 Random 实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同一 seed导致的性能下降。
说明:Random 实例包括 java.util.Random 的实例或者 Math.random()的方式。
正例:在 JDK7 之后,可以直接使用 API ThreadLocalRandom,而在 JDK7 之前,
需要编码保证每个线程持有一个单独的 Random 实例。
Math.random() 底层确实是使用 Random 类来实现的。
Math.random()在底层调用了java.util.Random类的nextDouble()方法。
Random类的核心在于其内部维护了一个种子(seed),这个种子是随机数生成算法的起点。
相同的种子会生成相同的随机数序列。在创建Random对象时,如果不提供种子,