qweasdzxc456123
jiqi323
2015-11-03 14:04

java多线程问题,java 编程思想书中的例子

  • java
  • 多线程

在看java编程思想书中的多线程一节,书中对wait,notify,notifyall举了一个例子,模拟给汽车涂蜡和抛光的过程,
因为抛光任务在涂蜡之前是不能尽兴的,反之,涂蜡任务在涂另外一层蜡之前,必须要等抛光任务结束。代码如下:
显示一个汽车类:
class Car{
private boolean wanOn=false;
public synchronized void waxed(){
waxOn=true;
notifyAll();
}
public synchronized void buffed(){
waxOn=false;
notifyAll();
}
public synchronized void waitForWaxing(){
while(waxOn==false){
wait();
}
}
public synchronized void waitForBuffint(){
while(waxOn==true){
wait;
}
}
}
我想知道为什么在waitForWaxing和waitForBuffint方法中,需要用while循环,而不是
用if来进行判断呢?
谢谢

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐