scala.util.Random 线程安全吗?

3 random scala thread-safety

我可以scala.util.Random在多个线程中使用同一个对象吗?

Ben*_*son 5

PRNG 的重要特征之一是给定相同种子时的可重复性。想象一下,您的代码在启动时遇到异常或崩溃。您想重复该行为,以便调试问题。如果您让自己控制种子,则可以在调试问题时使用相同的种子一遍又一遍地启动程序。如果您从单个线程访问生成器,它将看到给定种子的相同序列。如果您从多个线程访问它,您将无法控制每个线程访问生成器的顺序,因此它们将看到序列的不同子集。因此,即使您可以依赖它,您也可能不想利用 Random 的线程安全性。