在Java7新增了一个类ThreadLocalRandom,它是Random的增强版。在并发访问的环境下,使用ThreadLocalRandom来代替Random可以减少多线程竞争,最终保证系统具有更好的线程安全。
ThreadLocalRandom类的用法与Random用法基本类似,它提供一个静态的current()方法来获取ThreadLocalRandom对象,获取对象之后即可调用各种nextXXX()方法来获取伪随机数了。ThreadLocalRandom与Random都比Math的random()方法提供更多的方式来生成各种伪随机数,可以生成浮点类型的伪随机数,也可以生成整数类型的伪随机数,还可以指定生成随机数的范围。下面就是一个ThreadLocalRandom类的实用安全,代码如下:
System.out.println(java.util.concurrent.ThreadLocalRandom.current().nextInt(100));