⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grumpyboundedbuffer.java

📁 java concurrency in practice 源码. JAVA并发设计
💻 JAVA
字号:
package net.jcip.examples;import net.jcip.annotations.*;/** * GrumpyBoundedBuffer * <p/> * Bounded buffer that balks when preconditions are not met * * @author Brian Goetz and Tim Peierls */@ThreadSafe        public class GrumpyBoundedBuffer <V> extends BaseBoundedBuffer<V> {    public GrumpyBoundedBuffer() {        this(100);    }    public GrumpyBoundedBuffer(int size) {        super(size);    }    public synchronized void put(V v) throws BufferFullException {        if (isFull())            throw new BufferFullException();        doPut(v);    }    public synchronized V take() throws BufferEmptyException {        if (isEmpty())            throw new BufferEmptyException();        return doTake();    }}class ExampleUsage {    private GrumpyBoundedBuffer<String> buffer;    int SLEEP_GRANULARITY = 50;    void useBuffer() throws InterruptedException {        while (true) {            try {                String item = buffer.take();                // use item                break;            } catch (BufferEmptyException e) {                Thread.sleep(SLEEP_GRANULARITY);            }        }    }}class BufferFullException extends RuntimeException {}class BufferEmptyException extends RuntimeException {}

⌨️ 快捷键说明

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