reentrantlockpseudorandom.java

来自「java concurrency in practice 源码. JAVA」· Java 代码 · 共 35 行

JAVA
35
字号
package net.jcip.examples;import java.util.concurrent.locks.*;import net.jcip.annotations.*;/** * ReentrantLockPseudoRandom * <p/> * Random number generator using ReentrantLock * * @author Brian Goetz and Tim Peierls */@ThreadSafepublic class ReentrantLockPseudoRandom extends PseudoRandom {    private final Lock lock = new ReentrantLock(false);    private int seed;    ReentrantLockPseudoRandom(int seed) {        this.seed = seed;    }    public int nextInt(int n) {        lock.lock();        try {            int s = seed;            seed = calculateNext(s);            int remainder = s % n;            return remainder > 0 ? remainder : remainder + n;        } finally {            lock.unlock();        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?