1Z0-805 · Question #49
Which statement creates a low-overhead, low contention random number generator that is isolated to a thread to generate a random number between 1 and 100?
The correct answer is A. int i = ThreadLocalRandom.current().nextInt (1, 101). public class ThreadLocalRandom A random number generator isolated to the current thread. Like the global Random generator used by the Math class, a ThreadLocalRandom is initialized with an internally generated seed that may not otherwise be modified. When applicable, use…
Question
Which statement creates a low-overhead, low contention random number generator that is isolated to a thread to generate a random number between 1 and 100?
Options
- Aint i = ThreadLocalRandom.current().nextInt (1, 101);
- Bint i = ThreadSaferandom.current().nextInt(1, 101);
- Cint i = (int) Math.random()*.nextInt(1, 101);
- Dint i = (int) Match.random (1, 101);
- Eint i = new Random (). nextInt (100)+1;
How the community answered
(21 responses)- A86% (18)
- B5% (1)
- C10% (2)
Explanation
public class ThreadLocalRandom A random number generator isolated to the current thread. Like the global Random generator used by the Math class, a ThreadLocalRandom is initialized with an internally generated seed that may not otherwise be modified. When applicable, use ofThreadLocalRandom rather thanshared Random objects in concurrent programs will typically encounter much less overhead and contention. Use of ThreadLocalRandom is particularly appropriate when multiple tasks (for example, each a ForkJoinTask) use random numbers in parallel in thread pools. Usages of this class should typically be of the form: ThreadLocalRandom.current().nextX(...) (where X is Int, Long, etc). When all usages are of this form, it is never possible to accidently share a ThreadLocalRandom across multiple threads. This class also provides additional commonly used bounded random generation methods.
Topics
Community Discussion
No community discussion yet for this question.