package ch21concurrent.examples; import java.util.concurrent.atomic.*; /** * XorShift * * @author Brian Goetz and Tim Peierls */ public class XorShift { static final AtomicInteger seq = new AtomicInteger(8862213); int x = -1831433054; public XorShift(int seed) { x = seed; } public XorShift() { this((int) System.nanoTime() + seq.getAndAdd(129)); } public int next() { x ^= x << 6; x ^= x >>> 21; x ^= (x << 7); return x; } }