futuredata.java
来自「多线程与并发处理是程序设计好坏优劣的重要课题」· Java 代码 · 共 36 行
JAVA
36 行
import java.lang.reflect.InvocationTargetException;
public class FutureData implements Data {
private RealData realdata = null;
private InvocationTargetException exception = null;
private boolean ready = false;
public synchronized void setRealData(RealData realdata) {
if (ready) {
return;
}
this.realdata = realdata;
this.ready = true;
notifyAll();
}
public synchronized void setException(Throwable throwable) {
if (ready) {
return;
}
this.exception = new InvocationTargetException(throwable);
this.ready = true;
notifyAll();
}
public synchronized String getContent() throws InvocationTargetException {
while (!ready) {
try {
wait();
} catch (InterruptedException e) {
}
}
if (exception != null) {
throw exception;
}
return realdata.getContent();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?