例如,当“排水”线程得到对水塘的控制权时,也就是拥有了water这个对象,但水塘中却没有水,此时,water.isEmpty()条件满足,water对象被释放,所以“排水”线程在等待。可以使用如下代码在同步机制保护下调用wait()方法:
synchronized(water){
……//省略部分代码
try{
if(water.isEmpty()){
water.wait(); //线程调用wait()方法
}
}catch(InterruptException e){
……//省略异常处理代码
}
}