buffer.java

来自「这是《Java案例精粹150例(上册)》一书配套的源代码。」· Java 代码 · 共 34 行

JAVA
34
字号
package thread;

// 生产者与消费者共享的缓冲区,必须实现读、写的同步
public class Buffer {
	private int contents;
	private boolean available = false;

	public synchronized int get() {
		while (! available) {
			try {
				this.wait();
			} catch (InterruptedException exc) {}
		}
		int value = contents;
		// 消费者取出内容,改变存取控制available
		available = false;
		System.out.println("取出" + contents);
		this.notifyAll();
		return value;
	}

	public synchronized void put(int value) {
		while (available) {
			try {
				this.wait();
			} catch (InterruptedException exc) {}
		}
		contents = value;
		available = true;
		System.out.println("放入" + contents);
		this.notifyAll();
	}
}

⌨️ 快捷键说明

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