public class TestForGuardedObject {

public static void main(String[] args) {
GuardedObject guardedObject = new GuardedObject();

new Thread(()->{
Object o = guardedObject.get();
System.out.println(o);
},"t1").start();


new Thread(()->{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
guardedObject.set("张楚");
System.out.println("我是张楚,我已进来");
},"t2").start();
}
}

class GuardedObject{
private Object response;

public Object get(){
while(this.response == null){
System.out.println("GuardedObject中:" + response);
}
return response;
}

public void set(Object response){
this.response = response;
}

}
有没有佬帮忙看一下这段代码,为啥我删除get方法中的System.out就会卡死,不删除就能正常生产和消费
展开
评论