ThreadLocalRandom在java.util.concurrent包下,是一个与当前线程隔离的随机数生成器。它通过为每个线程实例化一个随机数生成器,来减少系统开销和对资源的争用。
通过current方法ThreadLocalRandom实例:
public static ThreadLocalRandom current() {
if (UNSAFE.getInt(Thread.currentThread(), PROBE) == 0)
localInit();
return instance;
}
常用方法如下:
//返回一个整型的伪随机数
public int nextInt();
//返回一个0-bound之间的随机数
public int nextInt(int bound);
//返回一个origin-bound之间的随机数
public int nextInt(int origin, int bound);
//返回一个long型随机数
public long nextLong();
//返回一个0-bound之间的随机数
public long nextLong(long bound);
//返回一个origin-bound之间的随机数
public long nextLong(long origin, long bound);
//返回一个double类型的随机数
public double nextDouble();
//返回一个0-bound之间的随机数
public long nextDouble(long bound);
//返回一个origin-bound之间的随机数
public long nextDouble(long origin, long bound);
//返回一个boolean类型的随机数
public boolean nextBoolean();
//返回一个float类型的随机数
public float nextFloat();
简单举例:
import java.util.concurrent.ThreadLocalRandom;
public class ThreadLocalRandomDemo {
public static void main(String args[]) {
int random=ThreadLocalRandom.current().nextInt();
System.out.println(random);
}
}
网友评论