RFR 8066397 Remove network-related seed initialization code in ThreadLocal/SplittableRandom
Doug Lea
dl at cs.oswego.edu
Wed Dec 3 17:38:37 UTC 2014
On 12/03/2014 12:20 PM, Martin Buchholz wrote:
> I don't think such a general purpose utility belongs in
> SplittableRandom or ThreadLocalRandom - those are the clients. Random
> is a slightly better fit, but still not great.
Perhaps one of these could be made to be a good fit.
As of now, this new method (systemSeed) would be called at most
twice ever -- during static init of SplittableRandom and
ThreadLocalRandom. Either of these could be reworked to
use a high-quality derived seed from the other as its
initial seed. In which case systemSeed would be called only once.
Of the two choices, housing the code in ThreadLocalRandom
seems logistically a bit easier. Then SplittableRandom could use
private static final AtomicLong defaultGen =
new AtomicLong(ThreadLocalRandom.current().nextLong());
(For that matter, java.util.Random could use the same
idea for its initial seed.)
-Doug
More information about the core-libs-dev
mailing list