为了使the Flags2 class will compile and make appropriate use of the wait/notify mechanism.public class Flags2 {
private boolean isReady = false;
public synchronized void produce() {
isReady = true;
notifyAll();
}
public synchronized void consume() {
while(!isReady) {
try {
wait();
}catch(Exception ex) {}
}
isReay = true;
}
}public class Flags2 {
private boolean isReady = false;
public synchronized void produce() {
isReady = true;
notifyAll();
}
public synchronized void consume() {
while(!isReady) {
try {
wait();
}catch(Exception ex) {}
}
isReay = false;
}
}两段代码,最后一句 isReady = true; 或者 isReady = false;都可以编译,那么到底应该是isReady = ture还是isReady = false呢??为什么?
private boolean isReady = false;
public synchronized void produce() {
isReady = true;
notifyAll();
}
public synchronized void consume() {
while(!isReady) {
try {
wait();
}catch(Exception ex) {}
}
isReay = true;
}
}public class Flags2 {
private boolean isReady = false;
public synchronized void produce() {
isReady = true;
notifyAll();
}
public synchronized void consume() {
while(!isReady) {
try {
wait();
}catch(Exception ex) {}
}
isReay = false;
}
}两段代码,最后一句 isReady = true; 或者 isReady = false;都可以编译,那么到底应该是isReady = ture还是isReady = false呢??为什么?
解决方案 »
- 游戏背景随人物移动而移动的问题
- java静态方法中 局部变量可见性问题
- java调用另一个软件的菜单命令。 高手请进
- [求救.帮帮忙.]如何用多线程播放烟花?
- 请教java如何调用outlook?我会传入收件人的地址,用户点我的button之后我会打开outlook然后把收件人的地址传入?
- 我有如下关于数据库设计和性能的问题
- 关于向JTable里面加入JCheckBox的问题!
- JTextArea一定要等到进程结束后才会输出结果么
- 高分求解在linux下遇到的中文问题。急!!!
- 请问有哪为知道,weblogic提供petstore例子,什么地方有详细说明??
- 字符串(28|29|30)&31&32解析问题,求助
- 高手请帮看个错误源的问题....(通常是怎么引起的...刚刚学会给分)
生产的时候,声明已经准备好了,唤醒所有的消费进程。消费的时候,如果没有准备好,那么消费程序就一直等待。如果消费者在等待的时候出现异常,可能的情况就是消费者已经没东西消费了,这个时候应该让生产者执行,当isReady=true的时候,消费者跳过,当isReady=false的时候,消费者还会执行,但是程序已经异常警告没有东西可消费了。所以我想按题目的意思,isReady=true才是对的。这样才能达到生产与消费的循环。