Java7的Random伪随机数和线程安全的ThreadLocalRandom
⼀、Random伪随机数:
java生成随机数的方法Random 类专门⽤于⽣成⼀个伪随机数,它有两个构造器: ⼀个构造器使⽤默认的种⼦(以当前时间作为种⼦) ,另 个构造器需要程序员显式传⼊⼀个 long 整数的种⼦.
当使⽤默认的种⼦或传⼊相同的种⼦构造 Random 对象时,它们属于同⼀个种⼦,只要两个 Random 对象的种⼦相同,⽽且⽅法的调⽤顺序也相同,它们就会产⽣相同的数字序列 也就是说, Random 产⽣的数字并不是真正随机的,⽽是⼀种伪随机
常⽤解决⽅案:
为了避免两个 Random 对象产⽣相同的数字序列,通常推荐使⽤当前时间作为 Random 对象的种⼦:
Random rand =new Random(System.currentTimeMi11is());
⼆、ThreadLocalRandom
ThreadLocalRandom 类是 Java 新增的 ,它 Random 的增强版 在并发访 问的环境下,使⽤ThreadLocalRandom 来代替 Random 可以减少多线程资源竞争,最终保证系统具有更好的线程安全性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论