如何在许多请求中生成随机值

如何在许多请求中生成随机值

本文介绍了如何在许多请求中生成随机值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为许多Servlet请求生成一些随机数。
问题是如果我在每个servlet中使用一个新的Random对象,那么整体概率将不正确。

周围10000+多个请求,我希望所有的随机值应该在范围内均匀分布。


解决方案

那么,为什么不使用全局随机实例?



或者您可以使用 ThreadLocalRandom 是比较快的。这是一种全球性的,因为你不能真正创建它的一个实例。您可以通过调用 ThreadLocalRandom.current()来获取实例。在Java 7中,它返回一个每个线程的实例。在Java 8中,它进一步优化,它总是会返回相同的单例。


I want to generate some random numbers for many Servlet requests.The problem is if i use a new Random object in each servlet, the overall probability will be incorrect.

E.g. with around 10000+ reqeusts, i expect all random value should be evenly distributed within the range.

解决方案

So why not use a global Random instance?

Or you can use ThreadLocalRandom which is faster. And it is kind of global because you cannot really create an instance of it. You can get an instance by calling ThreadLocalRandom.current(). In Java 7, it returns a per-thread instance. In Java 8, it is further optimized, it'll always return the same singleton.

这篇关于如何在许多请求中生成随机值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 16:24