为什么有时候可以不使用object.wait()而可以使用wait()
来源:7-2 wait方法

ych_1997
2019-11-12
public void produce() {
synchronized (this) {
while (mBuf.isFull()) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
mBuf.add();
notifyAll();
}
}
public void consume() {
synchronized (this) {
while (mBuf.isEmpty()) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
mBuf.remove();
notifyAll();
}
}
代码段摘至网络,不是很清楚运行时 wait() 和notifyAll() 为什么不报错, 这里的wait() 是如何持有monitor的
代码出处地址:https://www.jianshu.com/p/25e243850bd2?appinstall=0
写回答
1回答
-
就是这个对象this本身,进入syn代码块所以持有锁。每个对象都有wait方法。
012019-11-13
相似问题