📜  ThreadLocalRandom类(1)

📅  最后修改于: 2023-12-03 14:47:58.315000             🧑  作者: Mango

ThreadLocalRandom类介绍

ThreadLocalRandom类是在Java 7版本中引入的,它提供了一种线程本地的随机数生成器。它可以减少多线程并发访问共享随机数生成器的竞争,并且比Random类的性能更好。

1. 使用方法

要使用ThreadLocalRandom类,只需使用current()方法获取当前线程的随机数生成器,然后调用其相关方法即可。

ThreadLocalRandom random = ThreadLocalRandom.current();

该类提供了一些基本的随机数生成方法,如nextInt()nextLong()nextDouble()等。这些方法与JavaRandom类中的方法类似。

int randomNumber = random.nextInt(100);
long randomLong = random.nextLong();
double randomDouble = random.nextDouble();
2. 性能优势

ThreadLocalRandom类提供了一种高效的随机数生成器,因为将它放置在每个线程的本地变量中可以减少竞争,从而提高了性能。此外,该类使用一些与Java的随机数生成器类不同的方法来生成随机数,这也有助于提高性能。

3. 线程安全性

由于ThreadLocalRandom类将随机数生成器存储在每个线程的本地变量中,因此不需要进行同步或防止竞争。因此,它是线程安全的。

4. 示例代码

下面的示例演示了如何使用ThreadLocalRandom类生成1-100之间的随机数。

ThreadLocalRandom random = ThreadLocalRandom.current();
int randomNumber = random.nextInt(1, 101);
System.out.println("Random number between 1-100: " + randomNumber);
5. 总结
  • ThreadLocalRandom类提供了线程本地的随机数生成器。
  • 使用current()方法获取当前线程的随机数生成器,然后调用其相关方法即可。
  • 该类的性能优于Random类。
  • 由于将随机数生成器存储在每个线程的本地变量中,因此它是线程安全的。