Java7 的Random伪随机数和线程安全的ThreadLocalRandom

一、Random伪随机数:

Random 类专门用于生成一个伪随机数,它有两个构造器: 一个构造器使用默认的种子(以当前时间作为种子) ,另 个构造器需要程序员显式传入一个 long 整数的种子.
当使用默认的种子或传入相同的种子构造 Random 对象时,它们属于同一个种子,只要两个 Random 对象的种子相同,而且方法的调用顺序也相同,它们就会产生相同的数字序列 也就是说, Random 产生的数字并不是真正随机的,而是一种伪随机

常用解决方案:

为了避免两个 Random 对象产生相同的数字序列,通常推荐使用当前时间作为 Random 对象的种子:

Random rand = new Random(System.currentTimeMi11is());
二、ThreadLocalRandom

ThreadLocalRandom 类是 Java 新增的 ,它 Random 的增强版 在并发访 问的环境下,使用ThreadLocalRandom 来代替 Random 可以减少多线程资源竞争,最终保证系统具有更好的线程安全性。

链接:https://www.jianshu.com/p/29ae27e401d1

原文地址:https://www.cnblogs.com/zouhong/p/13308788.html