ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/jsr166y/ThreadLocalRandom.java
(Generate patch)

Comparing jsr166/src/jsr166y/ThreadLocalRandom.java (file contents):
Revision 1.8 by jsr166, Thu Jul 23 23:07:57 2009 UTC vs.
Revision 1.13 by jsr166, Wed Aug 19 17:52:50 2009 UTC

# Line 5 | Line 5
5   */
6  
7   package jsr166y;
8 < import java.util.*;
8 >
9 > import java.util.Random;
10  
11   /**
12 < * A random number generator with the same properties as class {@link
13 < * Random} but isolated to the current Thread.  Like the global
14 < * generator used by the {@link java.lang.Math} class, a
15 < * ThreadLocalRandom is initialized with an internally generated seed
16 < * that may not otherwise be modified. When applicable, use of
17 < * ThreadLocalRandom rather than shared Random objects in concurrent
18 < * programs will typically encounter much less overhead and
19 < * contention.  ThreadLocalRandoms are particularly appropriate when
20 < * multiple tasks (for example, each a {@link ForkJoinTask}), use
21 < * random numbers in parallel in thread pools.
12 > * A random number generator isolated to the current thread.  Like the
13 > * global {@link java.util.Random} generator used by the {@link
14 > * java.lang.Math} class, a {@code ThreadLocalRandom} is initialized
15 > * with an internally generated seed that may not otherwise be
16 > * modified. When applicable, use of {@code ThreadLocalRandom} rather
17 > * than shared {@code Random} objects in concurrent programs will
18 > * typically encounter much less overhead and contention.  Use of
19 > * {@code ThreadLocalRandom} is particularly appropriate when multiple
20 > * tasks (for example, each a {@link ForkJoinTask}) use random numbers
21 > * in parallel in thread pools.
22   *
23   * <p>Usages of this class should typically be of the form:
24   * {@code ThreadLocalRandom.current().nextX(...)} (where
25   * {@code X} is {@code Int}, {@code Long}, etc).
26   * When all usages are of this form, it is never possible to
27 < * accidently share ThreadLocalRandoms across multiple threads.
27 > * accidently share a {@code ThreadLocalRandom} across multiple threads.
28   *
29   * <p>This class also provides additional commonly used bounded random
30   * generation methods.
# Line 76 | Line 77 | public class ThreadLocalRandom extends R
77      }
78  
79      /**
80 <     * Returns the current Thread's ThreadLocalRandom.
80 >     * Returns the current thread's {@code ThreadLocalRandom}.
81       *
82 <     * @return the current Thread's ThreadLocalRandom
82 >     * @return the current thread's {@code ThreadLocalRandom}
83       */
84      public static ThreadLocalRandom current() {
85          return localRandom.get();
86      }
87  
88      /**
89 <     * Throws UnsupportedOperationException. Setting seeds in this
90 <     * generator is unsupported.
89 >     * Throws {@code UnsupportedOperationException}.  Setting seeds in
90 >     * this generator is not supported.
91       *
92       * @throws UnsupportedOperationException always
93       */
# Line 194 | Line 195 | public class ThreadLocalRandom extends R
195          return nextDouble() * (bound - least) + least;
196      }
197  
198 +    private static final long serialVersionUID = -5851777807851030925L;
199   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines