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 + -
显示快捷键?